GitHub Apps против OAuth Apps: выберите правильное GitHub-подключение
Сравните GitHub Apps и OAuth Apps для интеграции Logto. Узнайте ключевые отличия в безопасности, разрешениях, управлении токенами и выберите наиболее подходящий метод аутентификации через GitHub для вашего приложения.
RanProduct & Design
Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
При интеграции аутентификации через GitHub в ваше приложение Logto у вас есть два варианта: GitHub Apps и GitHub OAuth Apps. Оба варианта позволяют реализовать функцию "Войти с помощью GitHub", однако они предлагают принципиально различные подходы по части безопасности, управления токенами и доступа к API. Это руководство поможет вам понять ключевые отличия и выбрать наиболее подходящий путь для вашего случая.
Текущая документация 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 безопасно хранит токены любого типа, однако опыт использования будет отличаться:
Если вам нужно просто аутентифицировать пользователей (Войти через GitHub) и вы не планируете делать запросы к GitHub API, выбирайте OAuth App:
Простая настройка: пользователи авторизуют ваш OAuth App и входят через GitHub.
Токены долгоживущие (без обновления): Logto может хранить access token в Secret Vault, но механизма обновления нет — токен действителен, пока его не отзовут.
Лучше всего подходит, если вам нужна только идентификация пользователя (e-mail, имя, аватар) и вы не выполняете автоматизированных API-запросов.
Почему выбрать этот способ: быстрее всего реализуется в прототипах или приложениях, где нужен только вход и периодическая синхронизация профиля.
Выбирайте GitHub App, если вашему приложению нужен постоянный доступ к GitHub API, фоновые автоматизации или ужесточённая безопасность:
Детализированные разрешения и выбор репозиториев при установке минимизируют и легко аудируются.
Токены краткоживущие (обычно 1 час), GitHub Apps могут выдавать refresh token; при включении Logto сохраняет оба — access и refresh — и обрабатывает их ротацию, чтобы ваш backend работал без повторного входа пользователей.
Идентичность приложения (бот) — позволяет точно отслеживать автора действий, масштабируемые лимиты делают решения надёжными для сложной автоматизации.
Конфигурация коннектора Logto почти не отличается:
Введите Client ID вашего GitHub App
Укажите Client secret
Включите «Store tokens for persistent API access» если нужно вызывать GitHub API
Ключевое отличие — Scopes:
В отличие от OAuth Apps (где области указываются в Logto), для GitHub Apps права выбираются в настройках самого приложения на GitHub.
Просто оставьте поле scope пустым в Logto
Получение refresh token (опционально)
Добавьте offline_access в поле scope, чтобы получать refresh токены
GitHub выдаст refresh token, Logto будет управлять их ротацией и хранить оба токена в Secret Vault
Обратите внимание: OAuth Apps не поддерживают refresh токены — их access токены никогда не истекают, так что offline_access не нужен. Это отличие GitHub Apps при интеграции.
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 уже сегодня.