Djangoでtwitterログイン機能を実装する
#追記
アップデートでTwitterがOAuth認証時にCallback URLをチェックするようになったみたいなのでその対策
#実装
環境
Python 3.6.1
Django 2.0.3
下記のコマンドでパッケージをインストール
pip install social-auth-app-django
setting.pyに以下を追記する
INSTALLED_APP = [
・・・
'social_django',
・・・
]
TEMPLATES = [
{
・・・
'OPTIONS': {
'context_processors': [
・・・
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
],
},
},
]
LOGIN_REDIRECT_URL = ログイン後のページ
SOCIAL_AUTH_TWITTER_KEY = クライアントID
SOCIAL_AUTH_TWITTER_SECRET = クライアントシークレット
AUTHENTICATION_BACKENDS = (
'social_core.backends.twitter.TwitterOAuth',
'django.contrib.auth.backends.ModelBackend',
)
INSTALLED_APPSを追加したのでmigrateする
urls.pyに以下を追記する
project名/urls.py
urlpatterns = [
path('',include('social_django.urls')),
]
ログイン機能を追加したいテンプレートに以下を記入
<a href="{% url 'social:begin' 'twitter' %}">Login with Twitter</a>
#Callback URLのチェック対策
https://apps.twitter.com/
上のURLでCallback URLという項目があるのでそれをSettingsで再設定する
Callback URLのところをhttp://127.0.0.1:8000/complete/twitter/
と入力する
これでログイン機能は完成