← Назад ко всем вопросам

Что происходит, когда access token истёк

1️⃣ Как кратко ответить

Когда access token истёк, клиентское приложение теряет доступ к защищённым ресурсам API. Для восстановления доступа необходимо использовать refresh token, если он предусмотрен, чтобы получить новый access token.

2️⃣ Подробное объяснение темы

Access token — это временный ключ, который используется для аутентификации и авторизации клиента при доступе к защищённым ресурсам API. Он имеет ограниченный срок действия, после которого становится недействительным. Это сделано для повышения безопасности, чтобы минимизировать риск несанкционированного доступа в случае компрометации токена.

Когда access token истекает, клиентское приложение больше не может выполнять запросы к API, требующие аутентификации. Сервер API будет возвращать ошибку, обычно с кодом 401 Unauthorized, указывая, что токен недействителен или истёк.

Для восстановления доступа к API, если предусмотрено, используется refresh token. Refresh token — это более долговременный токен, который позволяет получить новый access token без повторного ввода учётных данных пользователя. Это снижает нагрузку на пользователя и повышает удобство использования приложения.

Пример процесса обновления access token с использованием refresh token:

  1. Клиентское приложение обнаруживает, что access token истёк.
  2. Клиент отправляет запрос на сервер аутентификации с использованием refresh token.
POST /token HTTP/1.1
Host: auth.example.com
Content-Type: application/x-www-form-urlencoded
​
grant_type=refresh_token&refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
  • POST /token HTTP/1.1: Запрос на обновление токена отправляется на сервер аутентификации.
  • Content-Type: application/x-www-form-urlencoded: Указывает, что данные запроса передаются в формате URL-кодирования.
  • grant_type=refresh_token: Указывает, что используется тип гранта "refresh_token".
  • refresh_token=...: Передаётся сам refresh token, который был получен ранее.
  1. Сервер аутентификации проверяет refresh token и, если он действителен, выдает новый access token.
{
  "access_token": "newAccessToken123",
  "token_type": "Bearer",
  "expires_in": 3600
}
  • access_token: Новый access token, который клиентское приложение будет использовать для доступа к API.
  • token_type: Тип токена, обычно "Bearer".
  • expires_in: Время в секундах, в течение которого новый access token будет действителен.
  1. Клиентское приложение получает новый access token и использует его для дальнейших запросов к API.

Таким образом, использование refresh token позволяет клиентскому приложению автоматически обновлять access token, обеспечивая непрерывный доступ к API без необходимости повторной аутентификации пользователя. Это особенно важно для приложений, которые требуют постоянного доступа к ресурсам API, таких как мобильные приложения или веб-приложения с длительными сессиями.

Тема: Безопасность, авторизация и токены
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки