Как использовать python-social-auth только с Google?

74
10

Я пытаюсь добавить аутентификацию 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 и создал их с помощью URL-адреса localhost (для тестирования пока)

Я называю это в шаблоне следующим образом:

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

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

Бэкэнд не найден

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

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

спросил(а) 2016-02-12T19:24:00+03:00 4 года, 11 месяцев назад
1
Решение
73

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

ответил(а) 2016-02-13T00:49:00+03:00 4 года, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема