Чем отличаются виды токенов и где они применяются?
DOM и браузер
Виды токенов: access token (доступ к API, короткий), refresh token (обновление access, длинный), ID token (данные о пользователе, OpenID Connect). Плюс opaque и JWT по формату.
По назначению
Access Token
Короткоживущий, для доступа к API:
Authorization: Bearer <access_token>- Когда: каждый запрос к защищённому ресурсу.
- Короткий срок (минуты), в памяти.
Refresh Token
Долгоживущий, для получения нового access без повторного логина:
POST /auth/refresh → новый access- Когда: access истёк.
- Длинный срок (дни), в
HttpOnlycookie.
ID Token (OpenID Connect)
Содержит данные о пользователе (кто он) для аутентификации:
- Когда: узнать личность пользователя после логина (OIDC поверх OAuth).
По формату
JWT (самодостаточный)
header.payload.signature — данные внутри, проверка по подписи (stateless):
- Когда: масштабируемость, сервер не хранит сессию.
Opaque (непрозрачный)
Случайная строка, данные на сервере (stateful):
- Когда: нужен лёгкий отзыв, контроль на сервере.
Как применяются
Логин → access (память) + refresh (HttpOnly cookie) [+ ID token для данных о юзере]
Запросы → access в заголовке
Истёк access → refresh → новый accessКоротко для собеседования
По назначению: access token (доступ к API, короткий, в памяти), refresh token (обновление access, длинный, в HttpOnly cookie), ID token (данные о пользователе, OpenID Connect). По формату: JWT (данные внутри, stateless, масштабируемо) и opaque (данные на сервере, stateful, легко отозвать). Access — для запросов, refresh — для обновления.