【问题标题】:Laravel logout remember token errorLaravel 注销记住令牌错误
【发布时间】:2017-10-23 11:49:09
【问题描述】:

这次我正在尝试注销用户...我很确定我的路由和控制器都很好,但我不知道为什么我的错误看起来像这样(当然当我尝试注销):

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list' 

这是我在控制器中的方法:

public function logout()
{
    Auth::logout();
    return redirect('/');
}

我的注销是一个视图中的链接...出了什么问题?

【问题讨论】:

  • 你能检查你的用户表是否有remember_token 列吗?
  • 我的表名是 shopUsers,但我在 conf 中将其更改为 auth(也许这里有问题?)。而且我的表 shopUsers 中没有“remember_token”之类的列 -> 我不得不承认我真的不知道它是什么“记住令牌”以及为什么会出现这样的错误
  • 用于身份验证的表应该有remember_token
  • 好的,所以我应该添加这个专栏 - 但你能解释一下为什么吗?它是干什么用的?我刚开始做程序员,请理解我,我还不知道一切,我学习了。
  • 而这个remember_token是什么?诠释?我应该在表中最后添加此列吗?

标签: laravel token logout


【解决方案1】:

我正在使用 Laravel 5.5 并阅读有关 The User Provider Contract 的信息,我看到一些东西也是 StackOverflow 中另一个问题 here 的答案:

由于User类继承自Authenticatable,Authenticatable类使用AuthenticatableContract,实现了获取和设置用户Token的方法。

因此,一个简单的解决方案是在您的 User 类(或等效类)中覆盖(或实现)这些方法:

public function getRememberToken()
{
    return $this->token;
}

public function setRememberToken($value)
{
    $this->token = $value;
}

public function getRememberTokenName()
{
    return 'token';
}

您可以替换“令牌”并使用您想要的任何单词。

【讨论】:

    【解决方案2】:

    要在 laravel 中注销,您应该在 users 表中添加 remember_token 列。或您用于身份验证的任何表

    【讨论】:

      猜你喜欢
      • 2020-12-24
      • 2020-02-12
      • 2019-05-04
      • 2021-08-12
      • 2019-10-19
      • 2018-07-03
      • 2012-05-09
      • 2021-04-27
      • 1970-01-01
      相关资源
      最近更新 更多