Русский
  • GitHub
  • Secret vault
  • Хранение токенов
  • OAuth
  • Социальная авторизация

GitHub Apps против OAuth Apps: выберите правильное GitHub-подключение

Сравните GitHub Apps и OAuth Apps для интеграции Logto. Узнайте ключевые отличия в безопасности, разрешениях, управлении токенами и выберите наиболее подходящий метод аутентификации через GitHub для вашего приложения.

Ran
Ran
Product & Design

Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Начать
Product screenshot

При интеграции аутентификации через GitHub в ваше приложение Logto у вас есть два варианта: GitHub Apps и GitHub OAuth Apps. Оба варианта позволяют реализовать функцию "Войти с помощью GitHub", однако они предлагают принципиально различные подходы по части безопасности, управления токенами и доступа к API. Это руководство поможет вам понять ключевые отличия и выбрать наиболее подходящий путь для вашего случая.

Фоновая информация: два пути к интеграции GitHub

Текущая документация Logto шаг за шагом поможет вам настроить GitHub OAuth App для социальной аутентификации. Это более простой и прямолинейный вариант, отлично подходящий для базовых задач аутентификации. Однако GitHub Apps — это современный, рекомендуемый самим GitHub подход, обеспечивающий повышенную безопасность и более детальный контроль.

Представьте так: OAuth Apps — это как дать кому-то универсальный ключ от вашего дома — после авторизации он получает широкий доступ. С GitHub Apps же всё иначе: это как умный замок с индивидуальными кодами для разных комнат — пользователи могут предоставить ровно те разрешения, которые требуются вашему приложению.

Основные отличия вкратце

Разрешения: широкие против детализированных

  • OAuth Apps используют широкие области действия — запрос repo даёт полный контроль над репозиторием.
  • GitHub Apps используют детализированные разрешения — вы можете запросить, например, только «Issues: Read», не затрагивая исходный код. Пользователи могут выбрать конкретные репозитории при установке приложения, а не предоставлять общий доступ.

Безопасность токенов: постоянные против истекающих

  • OAuth Apps выдают токены, которые не истекают (пока их не отзовут вручную), механизма обновления нет.
  • GitHub Apps используют краткоживущие токены (обычно 1 час), с поддержкой автоматического обновления, — значительно безопаснее для долго работающих приложений.

Идентичность: пользователь против бота

  • OAuth Apps всегда действуют от имени пользователя (например, @octocat) и используют его лимиты запросов (5 000 запросов/час).
  • GitHub Apps могут действовать самостоятельно как бот (например, @my-app[bot]) и получать масштабируемые лимиты, которые растут с количеством пользователей — идеально для автоматизации.

Контроль доступа: всё или ничего против избирательности

  • OAuth Apps требуют однократной авторизации для всех доступных ресурсов.
  • GitHub Apps позволяют пользователям устанавливать приложение, выбирать репозитории вручную и получать уведомления через вебхуки о смене разрешений — прозрачность и контроль гораздо выше.

Сохранность работы: зависимость от пользователя против независимости

  • OAuth Apps зависят от авторизовавшего их пользователя: если разработчик теряет доступ или покидает организацию, приложение перестаёт работать.
  • GitHub Apps продолжают работать даже если разработчик, установивший их, покинет организацию — это гарантирует надёжную работу автоматизаций и интеграций.

Как выбрать?

Оба типа — GitHub Apps и OAuth Apps — отлично работают с социальным коннектором Logto. Secret Vault Logto безопасно хранит токены любого типа, однако опыт использования будет отличаться:

Базовая аутентификация через OAuth Apps

Если вам нужно просто аутентифицировать пользователей (Войти через GitHub) и вы не планируете делать запросы к GitHub API, выбирайте OAuth App:

  • Простая настройка: пользователи авторизуют ваш OAuth App и входят через GitHub.
  • Токены долгоживущие (без обновления): Logto может хранить access token в Secret Vault, но механизма обновления нет — токен действителен, пока его не отзовут.
  • Лучше всего подходит, если вам нужна только идентификация пользователя (e-mail, имя, аватар) и вы не выполняете автоматизированных API-запросов.

Почему выбрать этот способ: быстрее всего реализуется в прототипах или приложениях, где нужен только вход и периодическая синхронизация профиля.

Расширенная интеграция с GitHub Apps

Выбирайте GitHub App, если вашему приложению нужен постоянный доступ к GitHub API, фоновые автоматизации или ужесточённая безопасность:

  • Детализированные разрешения и выбор репозиториев при установке минимизируют и легко аудируются.
  • Токены краткоживущие (обычно 1 час), GitHub Apps могут выдавать refresh token; при включении Logto сохраняет оба — access и refresh — и обрабатывает их ротацию, чтобы ваш backend работал без повторного входа пользователей.
  • Идентичность приложения (бот) — позволяет точно отслеживать автора действий, масштабируемые лимиты делают решения надёжными для сложной автоматизации.

Лучший выбор для:

  • SaaS-платформ, управляющих чужими репозиториями GitHub
  • AI-агентов, работающих с кодом, задачами или пулл-реквестами
  • Приложений, которым нужен постоянный доступ к API
  • Инструментов, выполняющих фоновые задачи и автоматизацию

Настройка GitHub App в Logto

Настройка GitHub App похожа на OAuth App, с парой отличий. Переход с OAuth App на GitHub App требует минимальных изменений.

Создание GitHub App

  1. Перейдите в "GitHub Settings > Developer settings > GitHub Apps"

  2. Нажмите "New GitHub App"

  3. Настройте:

    • GitHub App name: уникальное имя для вашего приложения
    • Homepage URL: сайт вашего приложения
    • Callback URL: callback URI коннектора Logto (такой же как для OAuth App)
    • Request user authorization (OAuth) during installation: включите эту опцию
    • Webhook: по необходимости
    • Permissions: отметьте детализированные разрешения (например, "Issues: Read")
    • User permissions: добавьте разрешения к учётным данным, если нужно действовать от имени пользователей
  4. Сгенерируйте client secret (так же как для OAuth App)

integrate-github-apps.png

Настройка в Logto

Конфигурация коннектора Logto почти не отличается:

  1. Введите Client ID вашего GitHub App
  2. Укажите Client secret
  3. Включите «Store tokens for persistent API access» если нужно вызывать GitHub API
  4. Ключевое отличие — Scopes:
    • В отличие от OAuth Apps (где области указываются в Logto), для GitHub Apps права выбираются в настройках самого приложения на GitHub.
    • Просто оставьте поле scope пустым в Logto
  5. Получение refresh token (опционально)
    • Добавьте offline_access в поле scope, чтобы получать refresh токены
    • GitHub выдаст refresh token, Logto будет управлять их ротацией и хранить оба токена в Secret Vault
    • Обратите внимание: OAuth Apps не поддерживают refresh токены — их access токены никогда не истекают, так что offline_access не нужен. Это отличие GitHub Apps при интеграции.

integrate-github-connector-in-logto.png

Заключение

OAuth Apps всё ещё подходят для базовой аутентификации, но GitHub Apps — будущее интеграций с GitHub. Они обеспечивают лучшую безопасность за счёт истекающих токенов, более точную модель разрешений и больше контроля для пользователей.

В Logto оба варианта работают через social connector. Всё сводится к вашим целям:

  • Начните с OAuth Apps, если нужна только аутентификация
  • Переходите на GitHub Apps, если требуется доступ к API, автоматизация или повышенная безопасность

И помните — Secret Vault и автоматическое обновление токенов в Logto делают управление токенами GitHub App столь же простым, как и с OAuth Apps, при этом уровень безопасности выше. Будь то AI-ассистент, платформа управления проектами или инструмент производительности для разработчика — вы теперь знаете, какое GitHub-подключение выбрать для Logto.

Готовы начать? Посмотрите GitHub-коннектор Logto, чтобы интегрировать аутентификацию через GitHub уже сегодня.

Дополнительные материалы