因此,我使用护照进行了身份验证,在我注销用户之前,一切工作正常。我的路径受rm -rf ~/Library/Developer/Xcode/DerivedData
保护,因此注销后我无法访问任何功能,但是我的前端是通过基于Auth:check()值的react呈现的,注销后仍然为true。因此,我可以在没有任何权限的情况下进入管理仪表板,这是一个错误,并且找不到解决此问题的解决方案。
这是我的注销功能:
auth:api
这是我的登录和注册功能:
public function logout()
{
if (Auth::check()) {
DB::table('oauth_access_tokens')
->where('user_id', Auth::user()->id)
->update([
'revoked' => true
]);
return response(['check' => Auth::check()]); // I get true after logging out
}
return response(['check' => Auth::check()]);
}
我错过了什么?
答案 0 :(得分:1)
Auth::check()
返回true的原因是在auth服务上设置了用户。您只是撤销访问令牌,这意味着该用户将从下一个请求中注销。
您可以解决以下两种方法之一
1)假定对logout
路由的任何调用都将导致用户注销,而与执行的逻辑无关。例如,您可以拨打电话,然后清除前端中的访问令牌(或执行其他任何注销逻辑)。
2)您可以在代码中调用Auth::logout()
,这会将身份验证服务上的当前用户设置为null
,导致Auth::check()
返回false
。