Русский
  • 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 продолжают работать даже если установивший приложение разработчик покинул твою организацию — это гарантирует бесперебойную работу автоматизации и интеграций.

Какой выбрать вариант?

Оба варианта отлично работают с социальным коннектором Logto. Secret Vault Logto безопасно хранит токены из любой интеграции, но каждый из этих вариантов предоставляет свой опыт:

Базовая социальная авторизация через OAuth Apps

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

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

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

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

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

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

Лучше всего подходит для:

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

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

Настройка GitHub App похожа на настройку OAuth Apps, но есть несколько важных отличий. Переход с 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", если планируешь API-запросы к GitHub
  4. Важное отличие — Scopes:
    • В отличие от OAuth Apps (где области указываются прямо в конфиге Logto), для GitHub Apps разрешения выбираются в настройках самого GitHub App.
    • Просто не указывай область в поле scope в Logto
  5. Получение refresh token (по желанию)
    • Добавь offline_access в поле scope Logto, чтобы получать refresh токены
    • GitHub автоматически выдаёт refresh токен, Logto берёт на себя ротирование и хранит оба токена в Secret Vault
    • Обрати внимание: OAuth Apps не поддерживают refresh токены — их access токены не истекают, поэтому offline_access здесь не работает. Это отличие конкретно для интеграции через GitHub Apps.

integrate-github-connector-in-logto.png

Заключение

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

Для пользователей Logto оба варианта совместимы с социальным коннектором. Выбор зависит от твоих задач:

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

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

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

Дополнительные ресурсы