Auth::viaRemember() 在 Laravel 5.4 中不起作用(意味着即使成功登录后也始终返回 false) [英] Auth::viaRemember() doesnot work (means always return false even after successful login) in laravel 5.4
问题描述
我在laravel 5.4中使用了 php artisan make:auth
,因为我们知道laravel默认登录仅支持电子邮件,因此,我将 login()
放在AuthController中,如下所示(登录正常)-
I make use of php artisan make:auth
in laravel 5.4, as we know laravel default login only supports email so, I put login()
in AuthController like below (login working)-
public function login(Request $request)
{
$remember = ($request->input('remember')=='1')?true:false;
// this will remember the user as given in laravel documentation.
if (Auth::attempt(['user_name' => $request->user_name, 'password' => $request->password],$remember)) {
return redirect()->intended('admin');
}
elseif (Auth::attempt(['email'=> $request->user_name, 'password' => $request->password],$remember)) {
return redirect()->intended('admin');
}
else {
return redirect('/login')->with(['error'=>'Invalid user name and password'])
->withInput();
}
}
现在,每当会话过期时,只需键入url即可将其重定向到admin/dashboard,但无法这样做...默认情况下,它将重定向至登录页面.
Now, whenever session expired simply typing url should redirect to admin/dashboard, But couldnot do so... By default it redirects to login page.
在检查如下所示的中间件之前,我将 Auth :: viaRemember()
放在AuthContoller类的构造函数中.
I put Auth::viaRemember()
in constructor of AuthContoller class before checking for middleware like below-
public function __construct()
{
// login with remember me before checking whether its logged in or not
Auth::viaRemember();
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
我在堆栈溢出中遵循的内容-
What i follow in stack overflow -
通过记住我总是返回false -此链接类似于我的链接
Via Remember me always return false -this link is similar to mine
Laravel:在整个网站上实施Auth :: viaRemember()
推荐答案
protected function attemptLogin(Request $request)
{
// dd($request->has('remember'));
$remember =$request->has('remember');
return $this->guard()->attempt(
$this->credentials($request), $remember
);
}
在AuthenticateUsers.php中使用它对我有用
use this in AuthenticateUsers.php it worked for me
这篇关于Auth::viaRemember() 在 Laravel 5.4 中不起作用(意味着即使成功登录后也始终返回 false)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!