Initial commit: VoIdeaAI - voice-first AI idea assistant

This commit is contained in:
2026-05-13 12:51:42 +03:00
commit 688d043dad
421 changed files with 47915 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
# Выбор схемы аутентификации
---
## Decision Tree
```mermaid
graph TD
A[Схема auth?] --> B{Нужен вход через соцсети?}
B -->|Нет| C[Email + пароль]
B -->|Да| D{OAuth2}
D --> E[Выбрать провайдеров]
C --> F[Выбрать JWT или Session]
F -->|SPA/PWA| G[JWT + refresh token]
F -->|SSR| H[Session + cookie]
```
---
## Варианты
### 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, не больше)