Ответ
Плюсы:
- Делегирование авторизации — пользователь не передает логин/пароль вашему сервису
- Стандартизированный протокол с широкой поддержкой (Google, Facebook, GitHub и др.)
- Разные типы токенов (access, refresh) для гибкости и безопасности
- Можно реализовать одноразовые токены с коротким сроком жизни
Минусы:
- Сложность реализации — нужно разбираться в flow (Authorization Code, Implicit и др.)
- Зависимость от провайдера — если он упадет, ваши пользователи не смогут войти
- Требует HTTPS для безопасности
- Риск утечки токенов (например, через Referer header)
// Пример запроса авторизации через OAuth 2.0
const authUrl = `https://provider.com/oauth2/auth?
response_type=code&
client_id=YOUR_CLIENT_ID&
redirect_uri=YOUR_REDIRECT_URI&
scope=email profile`;