注销 laravel 护照中的用户

Logging out the user in laravel passport

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

 $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

上述解决方案不适用于 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

这样做:

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);
    }

只需这样做:

auth()->user()->token()->revoke();