Я создаю приложение 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. Любая идея, что случилось, пожалуйста?