Ответ
Содержимое Access и Refresh токенов определяется их назначением и стандартами, такими как JWT (RFC 7519) для Access токенов.
Access Token (Токен доступа)
Обычно представляет собой JWT (JSON Web Token). Он является самодостаточным и содержит всю необходимую информацию (claims) для авторизации запроса на сервере. Его не нужно проверять по базе данных при каждом запросе, достаточно проверить цифровую подпись.
Стандартные поля (claims):
sub
(Subject): Идентификатор пользователя (например,user_id
).exp
(Expiration Time): Время истечения срока действия токена (в формате Unix timestamp).iat
(Issued At): Время выпуска токена.iss
(Issuer): Идентификатор сервиса, выдавшего токен.aud
(Audience): Идентификатор сервиса, для которого предназначен токен.scope
: Область разрешенных действий (например,read:data write:data
).
Пример декодированного JWT payload:
{
"sub": "1234567890",
"name": "John Doe",
"email": "john.doe@example.com",
"roles": ["admin", "user"],
"iat": 1516239022,
"exp": 1516242622
}
Refresh Token (Токен обновления)
В отличие от Access Token, Refresh Token чаще всего является непрозрачной (opaque), длинной, криптографически случайной строкой. Он не содержит данных о пользователе и его правах.
- Назначение: Безопасное получение нового Access Token после того, как старый истек.
- Хранение: Хранится в базе данных на сервере в связке с пользователем и имеет длительный срок жизни (дни, недели, месяцы).
- Структура: Обычно не имеет внутренней структуры. Это просто уникальный идентификатор сессии.
Пример: v2.local.E-k7sAULEA-C_qAazqJdxJc_234234...