@vladimir
Для использования GitHub OAuth API в Django, вы можете использовать библиотеки, такие как django-allauth
или python-social-auth
. В этом ответе будет рассмотрено, как использовать библиотеку django-allauth
.
- Установите django-allauth с помощью pip:
1
|
pip install django-allauth
|
- Добавьте 'allauth' и 'allauth.account' в список установленных приложений в файле settings.py вашего проекта Django:
1
2
3
4
5
6
|
INSTALLED_APPS = [
...
'allauth',
'allauth.account',
...
]
|
- Укажите настройки аутентификации в файле settings.py:
1
2
3
4
|
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
|
- Настройте URL-шаблоны в файле urls.py вашего проекта Django, чтобы добавить маршруты для аутентификации django-allauth:
1
2
3
4
5
|
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
...
]
|
- В файле settings.py настройте OAuth провайдеров:
1
2
3
4
5
6
7
8
9
|
SOCIALACCOUNT_PROVIDERS = {
'github': {
'APP': {
'client_id': 'Ваш client_id',
'secret': 'Ваш secret',
'key': ''
}
}
}
|
Замените 'Ваш client_id'
и 'Ваш secret'
на реальные значения полученные при создании приложения OAuth на странице GitHub.
- Теперь вы можете использовать тег шаблона {% provider_login_url 'github' %} для отображения ссылки на аутентификацию через GitHub.
1
|
<a href="{% provider_login_url 'github' %}">Войти через GitHub</a>
|
- В вашем представлении Django вы также можете использовать функции allauth для получения данных пользователя GitHub. Ниже приведен пример простого представления, которое приветствует пользователя после аутентификации через GitHub:
1
2
3
4
5
6
7
8
9
10
|
from allauth.socialaccount.models import SocialToken
def home(request):
if request.user.is_authenticated:
github_token = SocialToken.objects.get(account__user=request.user, account__provider='github')
# Вы можете использовать токен для доступа к API GitHub
# Например, github_token.token
return render(request, 'home.html')
else:
return render(request, 'login.html')
|
Это основные шаги для использования GitHub OAuth API с django-allauth
. Вы можете уточнить настройки и настройки в соответствии со своими потребностями.