【问题标题】:Logging out the user in laravel passport在 laravel 护照中注销用户
【发布时间】:2018-06-07 10:19:18
【问题描述】:

我正在使用 Laravel 5.5 进行 API 开发,我们如何使用 laravel 护照注销用户?它与网络中的注销相同还是有什么不同?提前致谢。

【问题讨论】:

  • 你到底想要什么?
  • @kunal 在用户注销时撤销对用户的访问权限

标签: laravel authentication laravel-5.5 laravel-passport


【解决方案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();
      

      【讨论】:

        猜你喜欢
        • 2020-09-03
        • 2019-12-10
        • 2014-10-20
        • 1970-01-01
        • 2019-08-07
        • 2018-08-11
        • 2021-07-06
        • 1970-01-01
        • 2016-02-13
        相关资源
        最近更新 更多