Аутентификация с помощью django-allauth для использования API Github - PullRequest
0 голосов
/ 14 октября 2018

Я создаю приложение django, которое требует работы с API GitHub.Я использовал django-allauth для своих нужд аутентификации, и у меня есть следующая конфигурация в моем файле settings.py:

...
AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
)

# AllAuth Configuration
SOCIALACCOUNT_PROVIDERS = {
    'github' : {
        'SCOPE' : [
            'repo',
            'user',
        ]
    }
}

ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
ACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_STORE_TOKENS = True
...

Однако, если я хочу получить репозитории, у аутентифицированного пользователя есть явное разрешение на доступ через GET / user / repos , как описано в документации GitHub RESTAPI v3 , я получаю следующий ответ:

{'message': 'Требуется аутентификация', 'Документация_url ': https://developer.github.com/v3/repos/#list-your-repositories'}

Это сбивает с толку, потому что я вошел в систему с учетной записью GitHub, и у меня есть repo в моем списке областей, как показано выше.Почему проверка подлинности требуется снова?Вот что у меня в views.py файле:

def repos(request):
    repos_url = 'https://api.github.com/user/repos'
    r = requests.get(repos_url)
    data = r.json()
    return render(request, 'core/repos.html', {'data': data})

Я попробовал https://api.github.com/user/repos?access_token='access_token', и это сработало.Я просто обеспокоен тем, почему я должен добавить access_token к URL, когда я уже вошел в систему с моей учетной записью GitHub. Любая идея, что случилось, пожалуйста?

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