Laravel 4:检查后#34;记住我"复选框用户的登录信息不会记录在数据库中,只能在cookie中记住,因此请记住我不能正常工作

时间:2014-09-01 08:09:28

标签: php cookies laravel-4

我正在使用laravel 4.1.24。

我有一个登录表单,我正在尝试实现记住我的功能。我使用Auth :: attempt()来实现上述功能。这是我的代码。

$input = Input::all();

$rules = array('email' => 'required', 'password' => 'required');

$v = Validator::make($input, $rules);

if($v->passes()) {

   $credentials = array('email' => $input['email'], 'password' => $input['password']);

   if( Auth::attempt($credentials, Input::has('remember_me') ? true : false) ) {

      // user authenticated
   }
} else {

      return Redirect::to('login')->withInput()->withErrors($v);
}

我还在users表中创建了一个列“remember_token”(一个可以为255个字符的可空字符串)。并且在User.php模型中添加了以下3种方法

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

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

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

是的,它确实设置了名为remember_xxxxxx的cookie,但它没有向remember_token列添加任何内容。它不起作用。我错过了什么吗?

1 个答案:

答案 0 :(得分:4)

  

我正在使用laravel 4.1.24。

Laravel 4.1.26中引入了remember_token值。您需要升级您的版本才能利用新功能。 Here is an upgrade guide from the Laravel Docs for you