Я хочу выйти из моего 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);
}