我在Laravel 5.4中使用php artisan make:auth
,因为我们知道Laravel默认登录仅支持电子邮件,因此,我将login()
放在authcontroller中,如下(登录工作( -
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就应该重定向到管理/仪表板,但是CAND -UNOT不会这样做...默认情况下,它将其重定向到登录页面。
我将Auth::viaRemember()
放在AuthconColler类的构造函数中,然后检查以下类似的中间件 -
public function __construct()
{
// login with remember me before checking whether its logged in or not
Auth::viaRemember();
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
我在堆栈溢出中遵循的内容 -
通过记住我总是返回false -此链接类似于我的
viaremember不起作用-laravel
laravel 5 viaremember((总是false
laravel:在整个网站上实现auth :: viarememb((
protected function attemptLogin(Request $request)
{
// dd($request->has('remember'));
$remember =$request->has('remember');
return $this->guard()->attempt(
$this->credentials($request), $remember
);
}
在authenticateusers.php中使用它,它对我有用
public function __construct()
{
Auth::viaRemember()
Auth::check();
Auth::viaRemember();
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
尝试此