最も基本的なdjango-allauthを使用したログイン機能

前提

  • Djangoがインストールできていること
  • Djangoの一般的な使い方が理解できていること
  • Djangoの環境はコンテナ、仮想化何でもよい。

インストール

まずはpipでインストール。

pip install django-allauth

設定

settings.pyの修正

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here
                # なければ以下を追記
               'django.template.context_processors.request',
            ],
        },
    },
]

# INSTALLED_APPSに追記。

INSTALLED_APPS = [
    'django.contrib.auth',
    'django.contrib.messages',
    'django.contrib.sites', # デフォルトで書いていない
    'allauth',
    'allauth.account',
    'allauth.socialaccount', # Socialログインしなくても必要
]

# AUTHENTICATION_BACKENDSを追加。

AUTHENTICATION_BACKENDS = [
     'django.contrib.auth.backends.ModelBackend',
     'allauth.account.auth_backends.AuthenticationBackend',
]

# SITE_IDを追記
SITE_ID = 1

# ログイン後のリダイレクトURL
LOGIN_REDIRECT_URL = '/'

# ログアウト後のリダイレクトURL
ACCOUNT_LOGOUT_REDIRECT_URL = '/accounts/login/'

urls.pyに追記

urlpatterns = [
    path('accounts/', include('allauth.urls')),
]

マイグレーション

allauthのモデルを作成する。

python manage.py migrate

カスタムユーザモデルを使用する場合

以下の記事を参考にしてください。

DjangoでCustomUser+allauthを使用した認証

よかったらシェアしてね!

コメント

コメント一覧 (4件)

[Django] allauthで/logoutにアクセスしたらログアウト状態にする方法 | Libproc へ返信する コメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください