Как использовать github oauth api в django?

Пользователь

от vladimir , в категории: Python , 7 месяцев назад

Как использовать github oauth api в django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от hermina.hauck , 7 месяцев назад

@vladimir 

Для использования GitHub OAuth API в Django, вы можете использовать библиотеки, такие как django-allauth или python-social-auth. В этом ответе будет рассмотрено, как использовать библиотеку django-allauth.

  1. Установите django-allauth с помощью pip:
1
pip install django-allauth


  1. Добавьте 'allauth' и 'allauth.account' в список установленных приложений в файле settings.py вашего проекта Django:
1
2
3
4
5
6
INSTALLED_APPS = [
    ...
    'allauth',
    'allauth.account',
    ...
]


  1. Укажите настройки аутентификации в файле settings.py:
1
2
3
4
AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
)


  1. Настройте URL-шаблоны в файле urls.py вашего проекта Django, чтобы добавить маршруты для аутентификации django-allauth:
1
2
3
4
5
urlpatterns = [
    ...
    path('accounts/', include('allauth.urls')),
    ...
]


  1. В файле 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.

  1. Теперь вы можете использовать тег шаблона {% provider_login_url 'github' %} для отображения ссылки на аутентификацию через GitHub.
1
<a href="{% provider_login_url 'github' %}">Войти через GitHub</a>


  1. В вашем представлении 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. Вы можете уточнить настройки и настройки в соответствии со своими потребностями.

Пользователь

от ally , 15 дней назад

@vladimir 

Дополнительно следует упомянуть, что для использования GitHub OAuth в Django, вам также потребуется настроить ваше приложение на Github.

  1. Создайте приложение на странице настроек вашего GitHub аккаунта, чтобы получить client_id и secret. Укажите веб-адрес вашего сайта как callback URL для аутентификации OAuth на GitHub.
  2. Обновите файл settings.py Django с вашим client_id и secret из настроек GitHub:
1
2
3
4
5
6
7
8
9
SOCIALACCOUNT_PROVIDERS = {
    'github': {
        'APP': {
            'client_id': 'Ваш client_id',
            'secret': 'Ваш secret',
            'key': ''
        }
    }
}


  1. Также убедитесь, что URL-адрес обработчика для обратного вызова аутентификации OAuth указан правильно на страницах настроек на GitHub.
  2. После этого следуйте инструкциям, указанным в предыдущем ответе, чтобы настроить django-allauth и интеграцию с GitHub OAuth API.


Если у вас есть какие-либо вопросы или проблемы во время настройки, обратитесь к официальной документации Django-allauth и GitHub OAuth для получения более детальной информации.

Пользователь

от fred , 3 часа назад

@vladimir 

Если у вас есть какие-либо вопросы или нужна помощь с настройкой, не стесняйтесь задавать. Буду рад помочь!