我似乎无法让remember me工作。
以下是我正在尝试的内容:
remember_token
列laravel_session
Cookie以模拟会话过期 我希望Laravel能够使用这个remember_me_XXX
令牌重新登录,但它没有发生。
我不确定在哪里调试这个。据推测它是由“auth”中间件处理的,但这只是带我走过一条兔子的立面。搜索“remember_web”会显示0结果,所以我甚至不知道该cookie的来源。
所以我的问题是,
答案 0 :(得分:1)
管理以找到问题。基本上我在\Illuminate\Contracts\Auth\Authenticatable
类中错误地实现了User
接口。
我做到了这一点:
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->password;
}
/**
* Get the e-mail address where password reminders are sent.
*
* @return string
*/
public function getReminderEmail()
{
return $this->email;
}
/**
* Get the token value for the "remember me" session.
*
* @return string
*/
public function getRememberToken() {
return $this->remember_token;
}
/**
* Set the token value for the "remember me" session.
*
* @param string $value
* @return void
*/
public function setRememberToken($value) {
$this->remember_token = $value;
}
当我应该这样做时:
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword() {
return $this->getAttribute('password');
}
/**
* Get the e-mail address where password reminders are sent.
*
* @return string
*/
public function getReminderEmail() {
return $this->getAttribute('email');
}
/**
* Get the token value for the "remember me" session.
*
* @return string
*/
public function getRememberToken() {
return $this->getAttribute('remember_token');
}
我不确定从哪里复制原始代码,但基本上所有必要的数据都存储在模型属性中,而不是存储在类实例本身上,因此所有这些函数都返回null
或者一个空字符串。