Как удалить все токены обновления при выходе пользователя из системы?Кроме того, если они забывают выйти из системы и в следующий раз они входят и выход? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть этот код, который удаляет всех пользователей oauth_access_token при выходе из системы. Как мне сделать то же самое с oauth_refresh_token?

Также, если они по какой-либо причине забывают выход из системы и возвращаются, войдите в систему с новым токеном, я все еще могу удалить токен доступа и найти способ удалить также oauth_refresh_token.

может быть, есть способ отозвать токен обновления, поэтому при выходе из системы я могу просто удалить все отозванные токены ???

 public function logout()
    {
      auth()->user()->tokens->each(function ($token, $key) {
         $token->delete();
      });

    return response()->json('Logged out successfully', 200);

}

1 Ответ

1 голос
/ 10 июля 2019

Ваш код просто удаляет токены из внутренней памяти.

Токены доступа обычно истекают через 3600 секунд. Срок действия токенов обновления обычно не истекает.

У вас есть два варианта:

  1. Отзыв каждого токена доступа
  2. Отзыв токена обновления, который создал токены доступа.

Вы не упоминаете, какой поставщик OAuth. Для Google, чтобы отозвать любой тип токена, вызовите конечную точку: https://accounts.google.com/o/oauth2/revoke?token={token}

...