Какие методы авторизации важны на практике и чем они отличаются?
DOM и браузер
Методы авторизации: сессии на cookie, JWT (токены), OAuth 2.0 (вход через сторонние сервисы), API-ключи, Basic Auth. Различаются хранением состояния, применением и безопасностью.
Основные методы
Сессии (cookie-based)
Сервер хранит сессию, клиент — session ID в cookie:
- Stateful (состояние на сервере), легко отзывается.
- Когда: классические серверные приложения.
JWT (токены)
Самодостаточный подписанный токен, сервер не хранит сессию:
- Stateless, масштабируемо, но сложнее отзывать.
- Когда: SPA, микросервисы, API.
OAuth 2.0 / OpenID Connect
Делегированный доступ / вход через сторонний сервис (Google, GitHub):
- Когда: «войти через X», доступ к чужим API без пароля.
API-ключи
Статичный ключ для доступа к API:
- Когда: сервер-сервер, публичные API.
Basic Auth
Логин:пароль в заголовке (Base64):
- Когда: простые случаи, внутренние сервисы (только по HTTPS).
Различия
- Состояние: сессии — stateful; JWT — stateless.
- Отзыв: сессии/API-ключи легко; JWT сложнее (короткий TTL + refresh).
- Сторонний вход: OAuth/OIDC.
- Безопасность хранения: cookie (
HttpOnly) безопаснее токенов в localStorage.
Как выбирать
- SPA/API → JWT (access в памяти, refresh в HttpOnly).
- Классическое приложение → сессии.
- Вход через соцсети / доступ к чужим API → OAuth 2.0.
- Сервер-сервер → API-ключи.
Коротко для собеседования
Методы авторизации: сессии на cookie (stateful, легко отозвать — серверные приложения), JWT (stateless, масштабируемо — SPA/API), OAuth 2.0/OIDC (вход через сторонние сервисы), API-ключи (сервер-сервер), Basic Auth (простое, по HTTPS). Различаются состоянием (stateful vs stateless), отзывом и применением. SPA обычно — JWT + HttpOnly refresh.