OAuth авторизация

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

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

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

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

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

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

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

Два шага:

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

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

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

Чтобы подключить 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 хранится в базе в зашифрованном виде. Даже если бэкап попадёт в чужие руки — без ключа шифрования секреты недоступны.