Как добавить Google OAuth в Django

27 июня 2018 г. 10:18
Для добавления аутентификации воспользуемся библиотекой Python Social Auth

Выполняем установку
$ pip install social-auth-app-django

Добавим ‘social_django’ в INSTALLED_APPS, после чего выполним миграцию
python manage.py migrate

Добавим желаемые бекенды

AUTHENTICATION_BACKENDS = (
'social_core.backends.open_id.OpenIdAuth',
'social_core.backends.google.GoogleOpenId',
'social_core.backends.google.GoogleOAuth2',
'social_core.backends.google.GoogleOAuth',
'social_core.backends.twitter.TwitterOAuth',
'social_core.backends.yahoo.YahooOpenId',
...
'django.contrib.auth.backends.ModelBackend',
)

В нашем случае это 'social_core.backends.google.GoogleOAuth'. Не следует забывать про 'django.contrib.auth.backends.ModelBackend', иначе пользователи не смогут входить через встроенную систему аутентификации.

Добавим контекстные процессоры в settings.py

TEMPLATES = [
{
...
'OPTIONS': {
...
'context_processors': [
...
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
...
]
} …

Читать далее