Перейти к содержанию

OAuth-вход

Пользователи могут логиниться в Flawbusters через внешних OAuth-провайдеров.

Поддерживаемые провайдеры

  • Google — через Google Identity Services.
  • GitHub — через GitHub OAuth Apps.

Как это работает

  1. Пользователь нажимает Sign in with Google или Sign in with GitHub.
  2. Перенаправление на провайдера для consent.
  3. Колбэк возвращает пользователя на Flawbusters с authorization code.
  4. Backend обменивает code на access token, запрашивает профиль у провайдера.
  5. Создаётся (или логинится существующий) пользователь; email берётся из профиля.
  6. Выдаётся JWT + сессионный cookie.

Настройка провайдера (для self-hosted инсталляций)

Для SaaS-пользователей этот раздел не нужен

Всё уже настроено администратором Flawbusters.

Google

  1. Google Cloud ConsoleAPIs & ServicesCredentials.
  2. Create credentialsOAuth client IDWeb application.
  3. Authorized redirect URIs: https://your-domain.com/api/v1/auth/oauth/google/callback
  4. Сохраните Client ID и Client Secret в переменные окружения: bash GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=...

GitHub

  1. GitHub Developer SettingsOAuth AppsNew OAuth App.
  2. Authorization callback URL: https://your-domain.com/api/v1/auth/oauth/github/callback
  3. Сохраните 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 подтверждать повторно не нужно — провайдер уже его верифицировал.