Django Rest Framework: Как создать конечную точку для входа в систему через Gmail (Google)? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать API и мне интересно, как я могу создать конечную точку для аутентификации через учетную запись Gmail.Похоже, django-rest-auth поддерживает только Facebook и Twitter.

Кто-нибудь может дать мне советы?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Я использую Django rest auth в одном из моих проектов, и он поддерживает вход в Google.Он поддерживает все социальные провайдеры, которые поддерживает django-allauth. Здесь - список поддерживаемых социальных провайдеров django-allauth и django-rest-auth

# social_auth_view.py

from rest_framework_jwt.authentication import JSONWebTokenAuthentication
from allauth.socialaccount.providers.google.views import GoogleOAuth2Adapter
from rest_auth.registration.views import SocialLoginView

class GoogleLogin(SocialLoginView):
    adapter_class = GoogleOAuth2Adapter

# urls.py
urlpatterns += [
    ...,
    url(r'^rest-auth/google/$', GoogleLogin.as_view(), name='google_login')
]

Итак, если вы хотите поддержать любого другого социального провайдера.

  1. Адаптер импорта для вашего социального провайдера из allauth.socialaccount.providers.
  2. Создание нового представления в качестве подкласса rest_auth.registration.views.SocialLoginView.
  3. Добавьте адаптер, импортированный на шаге 1, в представлении какadapter_class attribute.
  4. Импортировать это представление в urls.py
0 голосов
/ 01 февраля 2019
...