Выбор схемы аутентификации
Decision Tree
Варианты
Email + пароль
|
|
| Плюсы |
Простота, не зависит от third-party, полный контроль |
| Минусы |
Пользователь должен помнить пароль, риск утечки |
| Хэширование |
bcrypt через passlib |
OAuth2 (Яндекс, Google, GitHub, Apple)
|
|
| Плюсы |
Удобство для пользователя, нет паролей на нашей стороне |
| Минусы |
Зависимость от провайдера, нужны client_id/secret, нужен публичный URL для callback |
| Схема |
Один пользователь = один провайдер (нельзя привязать два) |
JWT vs Session
|
JWT |
Session |
| Хранение |
На клиенте (localStorage) |
На сервере (Redis/БД) |
| Масштабирование |
Не нужна общая session storage |
Нужен Redis |
| Отзыв токена |
Сложно (до expire) |
Мгновенно |
| SPA/PWA |
Идеально |
Сложнее |
Рекомендация
Email + пароль + JWT для старта.
OAuth2 добавить перед production (если нужен).
JWT с refresh token для SPA/PWA, session для SSR.
[ASK]
- Нужен ли вход через соцсети? (рекомендация: Яндекс для РФ, Google для международных)
- JWT или Session? (рекомендация: JWT + refresh token)
- Сколько провайдеров OAuth? (рекомендация: 1-2, не больше)