我想用记住我创建登录脚本。我是laravel的新手,根据我的搜索,我发现在我的用户表中创建了带有255 varchar并在其设置为NULL的remember_token,在我的用户模型中我创建了三个函数。
#user.php的
public function getRememberToken()
{
return $this->remember_token;
}
public function setRememberToken($value)
{
$this->remember_token = $value;
}
public function getRememberTokenName()
{
return 'remember_token';
}
因为我正在使用Laravel Sentry进行身份验证,这就是为什么在我的控制器中
#AuthController.php
public function postLogin()
{
$input = Input::all();
$remember = (Input::has('remember')) ? true : false;
Sentry::authenticate([
'email' => $input['email'],
'password' => $input['password'],
], $remember);
Flash::addSuccess('You have been logged in successfully.');
return Redirect::intended(URL::route('profile_connect'))->withInput();
}
catch(Exception $e){
Flash::addError('That username or password is incorrect.');
return Redirect::route('auth_login');
}
现在,如果我登录并选择“记住我”复选框,则登录成功完成但用户表中的remember_token字段仍为空(null)。有人可以告诉我我错在哪里以及我需要改变的地方。提前谢谢。
答案 0 :(得分:1)
如果记住标志为真,Sentry的authenticate method不会在remember_token字段中存储值,而是设置一个cookie。
从技术上讲,login()
方法由authenticate()
调用并设置Cookie。
public function login(UserInterface $user, $remember = false)
{
... (snip)
if ($remember)
{
$this->cookie->forever($toPersist);
}
}