我正在尝试使用Laravel 5.4
和Laravel 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
怎么了?我无法下定决心
答案 0 :(得分:1)
这也让我发疯了好几次。您的“ testLogin”路由很可能不包含在auth中间件中,在路由通过时它不会为您提供auth。如果是这种情况,请在以下位置移动“ testLogin”路由:
Route::group(['middleware' => ['auth']], function () { ... HERE ... }
答案 1 :(得分:0)
在.env
文件中,变量SESSION_DOMAIN
的设置不正确且未反映本地域(从现在到几年前发生了变化)...愚蠢的错误,但我希望它可能会阻止其他人这样做。