首页 > 解决方案 > Laravel 身份验证不持久

问题描述

我正在尝试使用Laravel 5.4Laravel Valet 让一个旧项目重新焕发生机。

我面临身份验证问题。

登录控制器

public function authenticated(Request $request, User $user){
        $previous_session = $user->session_id;
        if ($previous_session) {
            Session::getHandler()->destroy($previous_session);
        }
        $user = Auth::user();
        $user->session_id = Session::getId();
        $user->save();
        Auth::login($user, true);
        return redirect('testlogin');
    }

路线

Route::get('testlogin', function () {
    dd(\Illuminate\Support\Facades\Auth::check());
});

在 LoginController 中,$user检索而不是检索null,但一旦进行Auth::check()重定向false

问题

怎么了 ?我无法下定决心

标签: phplaravelauthentication

解决方案


这也让我发疯了几次。很可能您的“testLogin”路由不包含在 auth 中间件中,这不会在路由通过时为您提供身份验证。如果是这种情况,请将您的“testLogin”路线移动到以下位置:

Route::group(['middleware' => ['auth']], function () { ... HERE ... }

推荐阅读