Сравни способы аутентификации пользователя и объясни, когда выбирать каждый вариант.
DOM и браузер
Способы аутентификации: сессии на cookie, JWT-токены, OAuth 2.0/OIDC, магические ссылки, биометрия/passkeys, API-ключи. Выбор — по типу приложения, безопасности и UX.
Способы и когда выбирать
Сессии (cookie-based)
Сервер хранит сессию, клиент — session ID в cookie.
- Когда: классические серверные приложения; нужен лёгкий отзыв (stateful).
JWT (токены)
Самодостаточный подписанный токен, stateless.
- Когда: SPA, мобильные, микросервисы, API; важна масштабируемость.
OAuth 2.0 / OpenID Connect
Вход через сторонние провайдеры (Google, GitHub).
- Когда: «войти через X», не хранить пароли, быстрый онбординг.
Магические ссылки / OTP
Ссылка/код на email/SMS вместо пароля.
- Когда: беспарольный UX, снижение фишинга.
Passkeys / биометрия (WebAuthn)
Биометрия/аппаратные ключи.
- Когда: максимальная безопасность и удобство, беспарольная аутентификация.
API-ключи
Статичный ключ.
- Когда: сервер-сервер, публичные API.
Как выбирать
- Классическое приложение → сессии.
- SPA/API/мобильные → JWT.
- Вход через соцсети → OAuth/OIDC.
- Беспарольно, простой UX → магические ссылки/passkeys.
- Сервер-сервер → API-ключи.
Компромиссы
- Сессии: легко отозвать, но stateful.
- JWT: масштабируемо, но сложнее отзывать.
- OAuth: удобно, но зависимость от провайдера.
Коротко для собеседования
Способы аутентификации: сессии на cookie (stateful, легко отозвать — серверные приложения), JWT (stateless, масштабируемо — SPA/API), OAuth 2.0/OIDC (вход через провайдеров), магические ссылки/OTP (беспарольно), passkeys/WebAuthn (биометрия, максимум безопасности), API-ключи (сервер-сервер). Выбор по типу приложения, безопасности и UX.