如何注销API?在Laravel中使用Passport

时间:2018-08-09 04:45:38

标签: php laravel

现在,当我要注销用户时,我会向我的API发送一个发布请求(带有Bearer令牌)

3 个答案:

答案 0 :(得分:4)

<li class="selected_li"> <span> some text </span> </li>

UserApiController.php

Route::group(['middleware' => ['auth:api']], function () {
Route::post('/logout', 'UserApiController@logout');
});

答案 1 :(得分:0)

这里的答案都很棒。如果revoke()不起作用,即

Auth::user()->token()->revoke();

不起作用,不能使用,

  public function logout(Request $request)
  {
    $response =  self::HTTP_CREATED;
    $user= $request->user();
    unset($user->api_token);
    $user->save();

    return response()->json([

      'response' => 'true', 
      'result' => '',
      'message' => 'User logged out'

  ], $response);

  }

目标是从上面的代码手动执行的操作中删除令牌。

答案 2 :(得分:0)

如果您未在api路由中使用中间件,也已使用laravel 7.24进行了测试。

api.php

Route::post('/logout', 'LoginController@logout');

使用api-guard(=护照),然后使用标准的laravel护照“ revokeAccessToken”方法。

public function logout ()
    {
        $tokenRepository = app('Laravel\Passport\TokenRepository');

        $user = auth('api')->user();

        if ($user) {
            $tokenRepository->revokeAccessToken($user->token()->id);
            return 'logged out';
        } else {
            return 'already logged out';
        }
    }