Laravel身份验证不持久

时间:2019-05-14 21:43:33

标签: php laravel authentication

我正在尝试使用Laravel 5.4和Laravel Valet使旧项目复活。

我遇到身份验证问题。

LoginController

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

问题

怎么了?我无法下定决心

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

.env文件中,变量SESSION_DOMAIN的设置不正确且未反映本地域(从现在到几年前发生了变化)...愚蠢的错误,但我希望它可能会阻止其他人这样做。