LoginSignup
19
19

More than 5 years have passed since last update.

Djangoでtwitterログイン

Last updated at Posted at 2018-03-16

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/
と入力する

これでログイン機能は完成

19
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
19