Auth::viaRemember() 在 Laravel 5.4 中不起作用(意味着即使成功登录后也始终返回 false) [英] Auth::viaRemember() doesnot work (means always return false even after successful login) in laravel 5.4

查看:79
本文介绍了Auth::viaRemember() 在 Laravel 5.4 中不起作用(意味着即使成功登录后也始终返回 false)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在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

via记住不起作用-laravel

Laravel 5 viaRemember()始终为假

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆