• en
  • Language: ru
  • Documentation version: 0.1

GitHub

GitHub работает аналогично Facebook (OAuth).

  • В настройках проекта необходимо добавить Github в AUTHENTICATION_BACKENDS:

    AUTHENTICATION_BACKENDS = (
        ...
        'social_core.backends.github.GithubOAuth2',
    )
    
  • Зарегистрируйте новое приложение на GitHub Developers, установите URL обратного вызова на http://example.com/complete/github/, заменив example.com своим доменом. В результате будут сгенерированы Клиентский ключ и Клиентский секрет.

  • Добавьте эти значения Client ID и Client Secret из GitHub в файл настроек вашего проекта.

На Client ID следует добавить SOCIAL_AUTH_GITHUB_KEY, а на Client Secret следует добавить SOCIAL_AUTH_GITHUB_SECRET:

SOCIAL_AUTH_GITHUB_KEY = 'a1b2c3d4'
SOCIAL_AUTH_GITHUB_SECRET = 'e5f6g7h8i9'
  • Также можно определить дополнительные разрешения с помощью:

    SOCIAL_AUTH_GITHUB_SCOPE = [...]
    

GitHub для организаций

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

SOCIAL_AUTH_GITHUB_ORG_*

Обязательно задайте имя организации с помощью параметра:

SOCIAL_AUTH_GITHUB_ORG_NAME = ''

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

GitHub для команд

Аналогично GitHub for Organizations, существует бэкенд GitHub for Teams, используйте бэкенд GithubTeamOAuth2. Настройки такие же, как и у основного бэкенда, но имена должны быть:

SOCIAL_AUTH_GITHUB_TEAM_*

Обязательно определите Team ID, используя настройку:

SOCIAL_AUTH_GITHUB_TEAM_ID = ''

Это id будет использоваться для проверки того, что пользователь действительно принадлежит к данной команде и отбрасывает его, если он не является ее частью.

GitHub для предприятий

Ознакомьтесь с документацией GitHub Enterprise, если планируете использовать GitHub Enterprises.

GitHub Apps

Similar to the GithubOAuth2 backend but primarily intended for use with GitHub applications (non-oauth application type). For GitHub App applications there are two primary workflows:

  1. A person clicks on an icon/button on your website and initiates the OAuth login procedure. They will be redirected to GitHub to complete the process and then back to your website. The person should be logged-in automatically. This is the same workflow as with standard OAuth GitHub apps.

  2. A person visits your GitHub App public URL, e.g. https://github.com/apps/my-app. They click the Install button, select onto which account/organization and repositori(es) to install your application and finish the process. GitHub will start sending webhooks to the URL you have configured! It will also redirect the person to Setup URL (optional).

  • Create a new GitHub App application owned by your organization. e.g. https://github.com/organizations/python-social-auth/settings/apps/new

  • Set User authorization callback URL to http://example.com/complete/github/ replacing example.com with your domain.

  • Turn on Request user authorization (OAuth) during installation if you wish to make Setup URL equal to User authorization callback URL. The side-effect of this is that after installing your GitHub app the person will be redirected back to your website and logged in automatically. When this is turned on steps 2) and 1) above are executed in sequence.

  • Add the values of Client ID and Client Secret from GitHub in your project settings file as shown above.