【发布时间】:2018-08-27 15:08:37
【问题描述】:
我怎样才能在我的 laravel 登录控制器中始终记住用户?
我尝试制作$remember_me = 1
但这似乎不起作用。
控制器:
public function postSignin(Request $request, AppMailer $mailer) {
$this->validate($request, [
'email' => 'required',
'password' => 'required',
]);
$username = $request->get('email');
$password = $request->get('password');
$field = filter_var($username,FILTER_VALIDATE_EMAIL)? 'email': 'username';
Auth::attempt([$field => $username, 'password' => $password], true);
return redirect()->back()->with('info', 'You are now signed in.');
}
Home 控制器的开始:
public function getIndex() {
if (Auth::check()) {
if (Auth::viaRemember()) {
dd('test');
}
编辑:我稍微更改了代码以解释为什么当前答案对我不起作用。
【问题讨论】:
-
试试这个:
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { // The user is being remembered... }并检查记住的用户:if (Auth::viaRemember()) { // } -
你应该检查这个问题的答案Laravel Remember Me。
-
@FelixMaxime
Auth::viaRemember() -
您可以将布尔值作为第二个参数传递给尝试方法,这将使用户无限期地通过身份验证,或者直到他们手动注销。当然,您的 users 表必须包含字符串 remember_token 列,该列将用于存储“记住我”令牌。在我的第一条评论中查看我的代码!
-
太棒了。谢谢你们!
标签: laravel