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:
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.
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 toSetup 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
tohttp://example.com/complete/github/
replacingexample.com
with your domain.Turn on
Request user authorization (OAuth) during installation
if you wish to makeSetup URL
equal toUser 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
andClient Secret
from GitHub in your project settings file as shown above.