2

Я пытаюсь добавить проверку подлинности Google в мой проектКак использовать python-social-auth только с Google?

Я установил его:

pip install python-social-auth 

и добавить его в settings.py:

SOCIAL_AUTH_USER_MODEL = 'accounts.CustomUser'## 

SOUTH_MIGRATION_MODULES = { 
    'default': 'social.apps.django_app.default.south_migrations' 
    } 

AUTHENTICATION_BACKENDS = (
    'myproject.middleware.AuthenticationCMSBackend',## 
    'social.backends.google.GoogleOpenId', 
    'social.backends.google.GoogleOAuth2', 
    'django.contrib.auth.backends.ModelBackend', 
) 

LOGIN_REDIRECT_URL = '/' 

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '507847...m.apps.googleusercontent.com' 
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'SEt-6...0j3'""" 

TEMPLATE_CONTEXT_PROCESSORS = (
    ... 
    'django.core.context_processors.request', 
    'social.apps.django_app.context_processors.backends', 
    'social.apps.django_app.context_processors.login_redirect', 
) 

Что касается SOCIAL_AUTH_GOOGLE_OAUTH2_KEY и secert, Я пошел к https://console.developers.google.com/apis/credentials и создал их, используя localhost url (для тестирования сейчас)

Я называю это в templ ели так:

<a href="{% url 'social:begin' 'google-oauth2' %}"> login </a> 

Но я получаю эту ошибку:

Backend not found

Что я делаю не так?

следующий шаг, я хочу убедиться, что только пользователи, которых я проверяю, могут не аутентифицировать никого с учетной записью google, как это сделать?

ответ

0

В вашем setting.py

AUTHENTICATION_BACKENDS = (
# Google 
'social.backends.google.GoogleOAuth2', 
# Django 
#'django.contrib.auth.backends.ModelBackend', 
) 
# Google Keys 
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'KEY' 
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'SECRET_' 

SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/' 

контекстные процессоры

'context_processors': [ 
       ... 
       'social.apps.django_app.context_processors.backends', 
       'social.apps.django_app.context_processors.login_redirect', 
      ], 

urls.py

urlpatterns = [ 
... 
url('social/', include('social.apps.django_app.urls', namespace='social')), 
... 
] 

в шаблоне добавления.

<p><a class="btn btn-lg btn-danger btn-block" href="{% url 'social:begin' 'google-oauth2' %}">Entrar con la cuenta de Google</a></p> 
+0

Это именно то, что я делаю, когда отправляю! в чем разница? что я должен исправить? – cinoch