在 laravel 护照中注销用户
Posted
技术标签:
【中文标题】在 laravel 护照中注销用户【英文标题】:Logging out the user in laravel passport 【发布时间】:2018-06-07 10:19:18 【问题描述】:我正在使用 Laravel 5.5 进行 API 开发,我们如何使用 laravel 护照注销用户?它与网络中的注销相同还是有什么不同?提前致谢。
【问题讨论】:
你到底想要什么? @kunal 在用户注销时撤销对用户的访问权限 【参考方案1】:上述解决方案不适用于 laravel 5.5 和护照(我测试过) 这似乎是一个 JWT 解决方案。
如果您正在寻找 Passport 的方式,您可以这样做:
$request->user()->token()->revoke()
假设当前路由使用的是 auth:api 中间件
相同的来源: https://laracasts.com/discuss/channels/laravel/passport-how-can-i-manually-revoke-access-token
【讨论】:
【参考方案2】: $value = $request->bearerToken();
$id= (new Parser())->parse($value)->getHeader('jti');
$token= $request->user()->tokens->find($token);
$token->revoke();
参考:https://laracasts.com/discuss/channels/laravel/passport-how-can-i-manually-revoke-access-token
【讨论】:
【参考方案3】:这样做:
public function logout()
$accessToken = Auth::user()->token();
DB::table('oauth_refresh_tokens')
->where('access_token_id', $accessToken->id)
->update([
'revoked' => true
]);
$accessToken->revoke();
return response()->json(null, 204);
【讨论】:
你刚刚给了我我正在寻找的提示,谢谢@php Worm @VishalParkash 太棒了!这个答案是很久以前发布的。现在在最新版本中可能有另一种方法可以做到这一点。 蠕虫,是的。但是您的回答帮助我找到了另一个好的解决方案:)【参考方案4】:这样做:
auth()->user()->token()->revoke();
【讨论】:
以上是关于在 laravel 护照中注销用户的主要内容,如果未能解决你的问题,请参考以下文章