Read in:
Русский

Авторизация через Google и GitHub

Зачем это нужно

По умолчанию пользователи входят через код на email: вводят адрес, получают письмо, кликают по ссылке. Это работает, но есть нюансы:

  • Письмо может идти долго или попасть в спам
  • Каждый вход — ждать письмо и переключаться между приложениями

С OAuth читатель входит через Google или GitHub в один клик. Не нужно ждать письма и проверять почту.

Компромисс: OAuth требует разовой настройки — зарегистрировать приложение в Google или GitHub и ввести ключи в Trip2G.

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

Два шага:

  1. Вы добавляете пользователя в Trip2G — указываете его email и права (читатель или админ)
  2. Пользователь входит через OAuth — его email в Google/GitHub должен совпадать с email в Trip2G

OAuth не даёт доступ автоматически. Сначала вы решаете, кого пустить. Потом человек входит удобным способом.

sequenceDiagram
    participant Admin as Администратор
    participant trip2g as Trip2G
    participant Reader as Читатель
    participant Provider as Google / GitHub

    Admin->>trip2g: Добавить пользователя (email + роль)
    Reader->>Provider: Войти (один клик)
    Provider-->>trip2g: Подтверждённый email
    alt Email совпадает с зарегистрированным пользователем
        trip2g->>Reader: Доступ разрешён
    else Email не найден
        trip2g->>Reader: Доступ запрещён
    end

Как подключить

Чтобы подключить OAuth:

  1. Зарегистрируйте приложение в Google и/или GitHub
  2. Введите полученные ключи в админке Trip2G

Google

Шаг 1. Создайте проект

  1. Откройте Google Cloud Console
  2. Создайте проект или выберите существующий
  1. Перейдите в API и сервисы → Окно запроса доступа OAuth
  2. Нажмите Начать
  3. Введите название приложения (например, название вашего сайта)
  4. Укажите email для поддержки
  5. В разделе «Аудитория» выберите Внешний (для любых пользователей) или Внутренний (только для вашей организации Google Workspace)
  6. Добавьте email-адреса и завершите настройку

Шаг 3. Создайте credentials

  1. Перейдите в API и сервисы → Учётные данные
  2. Нажмите Создать учётные данные → Идентификатор клиента OAuth
  3. Выберите тип Веб-приложение
  4. В поле Разрешённые URI перенаправления добавьте:
    https://ваш-домен.com/_system/auth/google/callback
    
  5. Нажмите Создать
  6. Скопируйте Client ID и Client Secret

GitHub

  1. Откройте GitHub Developer Settings
  2. Нажмите New OAuth App
  3. Заполните форму:
    • Application name: название вашего сайта
    • Homepage URL: https://ваш-домен.com
    • Authorization callback URL:
      https://ваш-домен.com/_system/auth/github/callback
      
  4. Нажмите Register application
  5. Скопируйте Client ID
  6. Нажмите Generate a new client secret и скопируйте Client Secret

Ввод ключей в админке

  1. Войдите в админ-панель Trip2G
  2. Перейдите в Админ панель → Google OAuth или GitHub OAuth
  3. Введите Client ID и Client Secret
  4. Сохраните и активируйте провайдер

Что увидят пользователи

После активации в окне входа появится кнопка «Войти через Google» или «Войти через GitHub» — рядом с полем для email.

Если деактивировать провайдер — кнопка исчезнет. Пользователи смогут входить только через код на email.

Безопасность

Client Secret хранится в базе в зашифрованном виде. Даже если бэкап попадёт в чужие руки — без ключа шифрования секреты недоступны.

Связанные статьи

  • ru/user/oidc — OIDC / Корпоративный SSO (Authentik и другие OpenID Connect-провайдеры)