Как выйти из API, используя только RefreshToken в Laravel Passport - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу выйти из моего laravel API, используя только RefreshToken, в JWT я могу это сделать, но я не нашел никакой возможности в Laravel паспорте,

в паспорте, требуется access_token для выхода из системы в настоящее время я передаю токен доступа в заголовке авторизации, но я сохранил срок действия маркера доступа только 10 minutes, потому что токен может быть доступен в запросе браузера, поэтому по соображениям безопасности я дал ему короткий промежуток времени.

но это означает, что каждые 10 минут мне приходится обновлять токен sh, я тоже это сделал, но для выхода из системы я думаю, зачем обновлять sh токен доступа, почему я не могу выйти из системы с помощью refre * Токен 1015 *, как и в JWT, я хочу решение, если кто-то попытался выйти из системы с помощью RefreshToken, в противном случае я сделаю это также как токен обновления для выхода, спасибо.

Ниже приведен мой код laravel, который я сейчас использую:

// Providers/AuthServiceProvider.php
public function boot() {
    $this->registerPolicies();

    Passport::routes(function ($router) {
        $router->forAccessTokens();
        $router->forPersonalAccessTokens();
        $router->forTransientTokens();
    });

    Passport::tokensExpireIn(now()->addMinutes(10));
    Passport::refreshTokensExpireIn(now()->addDays(30));
    Passport::personalAccessTokensExpireIn(now()->addDays(60));
}


// routes/api.php
Route::middleware('auth:api')->group( function () {
    Route::post('/logout','api\Auth\AuthController@logout');
});


// AuthController.php
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);
}
...