Django + Python социальная аутентификация: как настроить OAuth для GitHub Enterprise? - PullRequest
0 голосов
/ 12 февраля 2020

С Django и social-auth-app- django, я могу авторизоваться с https://github.com с social_core.backends.github.GithubOAuth2 бэкэндом.

И я пытаюсь переключить его на наш GitHub Enterprise на базе на этой документации; https://python-social-auth.readthedocs.io/en/latest/backends/github_enterprise.html#github-предприниматель

Вот мой settings.py:

INSTALLED_APPS = [
...
    'social_django',
]


MIDDLEWARE = [
...
    'social_django.middleware.SocialAuthExceptionMiddleware',
]


TEMPLATES = [
    {
...
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'social_django.context_processors.backends',
                'social_django.context_processors.login_redirect',
...
]

SOCIAL_AUTH_GITHUB_ENTERPRISE_URL = 'https://github.mycompany.com/'
SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL = 'https://github.mycompany.com/api/v3/'
SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY = '----'
SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET = '----'

AUTHENTICATION_BACKENDS = (
    'social_core.backends.github_enterprise.GithubEnterpriseOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)

Но он жалуется с ошибкой ниже:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/social-auth/login/github/
Raised by:  social_django.views.auth

Backend not found

I Я уверен, что класс social_core.backends.github_enterprise.GithubEnterpriseOAuth2 находится в /usr/local/lib/python3.8/site-packages/social_core/backends/github_enterprise.py.

Если я использую бэкэнд в качестве social_core.backends.github.GithubOAuth2, он перенаправляется на https://github.com/login/oauth/authorize?, что нежелательно.

Не могли бы вы, пожалуйста, руководство мне настроить бэкэнд для GitHub Enterprise?

1 Ответ

0 голосов
/ 13 февраля 2020

"{% url 'social:begin' 'github' %}" должно быть "{% url 'social:begin' 'github-enterprise' %}".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...