Auth::logout() 无法注销
前提
已经通过
Auth::attempt()
手动认证用户,即用户已登录
问题经过
直接通过代码来说明,之前我们已经登录了。
现在我们运行
Auth::logout();
dd(Auth::check()); //输出 false 说明已经注销成功
但是问题来了,我们再次运行,
dd(Auth::check()); //输出 true 说明没有注销!!!
Auth::logout(); 只有在执行这句代码的那次请求中才会注销,等下一次请求又回到原来(已经登录)的状态了!
3 Comments
新人学习
因为你用 dd 打断了 StartSession 中间件在请求处理后的后续处理逻辑,改成重定向响应或其他正常的 Laravel 响应即可,或者如果为了测试,可以在 logout 执行后调用
$request->session()->invalidate();
手动清除当前用户的 Session 数据好的,已解决,非常感谢学院君的帮助