Python
Django
Python3

Djangoでソーシャルログインを設定する

More than 1 year has passed since last update.

概要:
Google+のログインを例としたソーシャルログインの設定を記述します。

GitHubのページ
ドキュメント

前提:
Djangoがインストールされていること

設定の手順:

下記コマンドでソーシャルログイン用のパッケージをインストール

pip install social-auth-app-django

下記コマンドでDBテーブルを作成する

./manage.py migrate

Djangoをインストールした時にできた設定ファイル(settings.py)に下記を追加していく

INSTALLED_APPS = [
    ・・・
    'social_django',
    ・・・
]
TEMPLATES = [
    {
    ・・・
        'OPTIONS': {
            'context_processors': [
                ・・・
                'social_django.context_processors.backends',
                'social_django.context_processors.login_redirect',
            ],
        },
    },
]
AUTHENTICATION_BACKENDS = (
    'social_core.backends.google.GoogleOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_LOGIN_REDIRECT_URL = ログイン後の遷移先
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = クライアントID
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = クライアントシークレット

URLの設定をする

urlpatterns = [
    ・・・
    url('', include('social_django.urls', namespace='social')),
]

ソーシャルログインを設置したいテンプレートに下記を記述

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

以上で、設置完了。