OAuth-вход¶
Пользователи могут логиниться в Flawbusters через внешних OAuth-провайдеров.
Поддерживаемые провайдеры¶
- Google — через Google Identity Services.
- GitHub — через GitHub OAuth Apps.
Как это работает¶
- Пользователь нажимает Sign in with Google или Sign in with GitHub.
- Перенаправление на провайдера для consent.
- Колбэк возвращает пользователя на Flawbusters с authorization code.
- Backend обменивает code на access token, запрашивает профиль у провайдера.
- Создаётся (или логинится существующий) пользователь; email берётся из профиля.
- Выдаётся JWT + сессионный cookie.
Настройка провайдера (для self-hosted инсталляций)¶
Для SaaS-пользователей этот раздел не нужен
Всё уже настроено администратором Flawbusters.
Google¶
- Google Cloud Console → APIs & Services → Credentials.
- Create credentials → OAuth client ID → Web application.
- Authorized redirect URIs:
https://your-domain.com/api/v1/auth/oauth/google/callback - Сохраните
Client IDиClient Secretв переменные окружения:bash GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=...
GitHub¶
- GitHub Developer Settings → OAuth Apps → New OAuth App.
- Authorization callback URL:
https://your-domain.com/api/v1/auth/oauth/github/callback - Сохраните
Client IDиClient Secret:bash GITHUB_CLIENT_ID=... GITHUB_CLIENT_SECRET=...
Общие переменные¶
bash OAUTH_BASE_URL=https://your-domain.com OAUTH_JWT_SECRET=<random 32+ chars> OAUTH_COOKIE_SECURE=true # false только для локальной разработки
Поведение при первом входе¶
При первом входе через OAuth автоматически создаётся пользователь с данными из профиля провайдера. Никнейм можно сменить позже в Settings. Email подтверждать повторно не нужно — провайдер уже его верифицировал.