Auth::viaRemember() doesnot work (means always return false even after successful login) in laravel 5.4

自闭症网瘾萝莉.ら 提交于 2021-02-08 10:16:15

问题


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();

    }
}

Now, whenever session expired simply typing url should redirect to admin/dashboard, But couldnot do so... By default it redirects to login page.

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 -

Via Remember me always return false -this link is similar to mine

viaRemember not work - laravel

Laravel 5 viaRemember() always false

Laravel: Implement Auth::viaRemember() across the website


回答1:


protected function attemptLogin(Request $request)
{
     // dd($request->has('remember'));
    $remember =$request->has('remember');
    return $this->guard()->attempt(
        $this->credentials($request), $remember
    );
}

use this in AuthenticateUsers.php it worked for me




回答2:


public function __construct()
{
    Auth::viaRemember()
    Auth::check();
    Auth::viaRemember();
    $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}

try this



来源:https://stackoverflow.com/questions/44403391/authviaremember-doesnot-work-means-always-return-false-even-after-successfu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!