Ответ
Токен авторизации — это цифровой ключ (обычно строка), который выдается сервером после успешной аутентификации пользователя и подтверждает его права доступа к защищенным ресурсам. Клиент использует токен в последующих запросах вместо повторной передачи учетных данных.
Как это работает (поток OAuth 2.0):
- Пользователь вводит логин/пароль в клиенте.
- Клиент отправляет их на сервер аутентификации.
- Сервер проверяет данные и выдает Access Token (и часто Refresh Token).
- Клиент прикладывает токен к запросам в заголовке
Authorization: Bearer <token>. - Сервер ресурсов проверяет валидность токена и предоставляет доступ.
Пример JWT-токена (состоит из 3 частей, разделенных точками):
# Заголовок.Полезная нагрузка.Подпись
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0IiwidXNlcm5hbWUiOiJKb2huRG9lIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyNDI2MjJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Расшифровка полезной нагрузки (payload):
{
"sub": "1234",
"username": "JohnDoe",
"role": "admin",
"iat": 1516239022, // issued at (время выдачи)
"exp": 1516242622 // expiration (срок действия)
}
Ключевые характеристики и best practices:
- Короткий срок жизни (TTL): Access Token живет минуты/часы, чтобы минимизировать риски при компрометации.
- Обновление: Long-lived Refresh Token используется для получения нового Access Token без повторного ввода пароля.
- Безопасная передача: Только по HTTPS.
- Хранение на клиенте: В
HttpOnlyкуках (защита от XSS) или в защищенном хранилище (например, Secure Store в мобильных приложениях). - Отзыв токенов: Сервер должен иметь механизм инвалидации скомпрометированных токенов.