django-allauth를 사용하여 로그인 기능을 5 분 안에 구현하는 방법

django-allauth 설치


$ pip install django-allauth

settings.py 수정



settings.py

AUTHENTICATION_BACKENDS = [
    ...
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
    ...
]

INSTALLED_APPS = [
    ...
    # 下の4つを追加
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    ...
]

SITE_ID = 1 # 忘れずに!

urls.py 설정



urls.py
from django.urls import path, include #⇐includeを追加

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

마이그레이션 실행


$ python manage.py migrate

이상입니다!accounts/login가 기본 url이므로 거기에서 확인할 수 있습니다. 다음과 유사한 페이지가 표시됩니다. 만약 templates does not exists 가 나오는 경우는 한 번 accounts/logout 로 로그아웃 하고 나서 확인해 보세요. 덧붙여서 accounts/profile 의 URL이 필요하지 않는 경우에는 settigns.py


추천 옵션



django-allauth는 개인 취향에 따라 다양한 설정을 쉽게 할 수 있도록 해줍니다.
개인적으로 자주 사용하는 설정은 다음과 같습니다. 여기 에서 원하는 설정을 찾을 수 있습니다.

settings.py
LOGIN_REDIRECT_URL = '/' # loginした後にリダイレクトされるところ
ACCOUNT_LOGOUT_REDIRECT_URL = '/' # logoutした後にリダイレクトされるところ
ACCOUNT_SESSION_REMEMBER = True # 自動でアカウントのセッションを保持(いちいちユーザーネームとパスワードを要求しない)
ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE = False # ユーザー登録時にパスワードの要求を一回にする
ACCOUNT_LOGOUT_ON_GET = True #ログアウトをクリックしたらログアウト確認画面を経由しないで直接ログアウト

다음 일


  • templates의 외형 변경

  • 참고 사이트



    공식 문서

    좋은 웹페이지 즐겨찾기