Django/DRF

[Project] Django allauth를 이용한 소셜 로그인 - 기본 설정

Jong_seoung 2023. 1. 5. 10:02
반응형

[Project] Django allauth를 이용한 소셜 로그인 - 기본 설정

 

 

📚 패치지 설치

pip install django-allauth

 

 

📚  settings.py 내용 추가

 

📑 TEMPLATES - context_processors 

  • TEMPLATES안에 context_processors 부분에 추가하여 준다.
'django.template.context_processors.request',

완성 코드

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

 

📑 AUTHEMTICATION_BACKENDS

  • AUTHEMTICATION_BACKENDS 부분을 아래와 같이 추가하여 준다.
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',
]

SITE_ID = 1
LOGIN_REDIRECT_URL = '/'

 

📑 INSTALLED_APPS

  •  INSTALLED_APPS에 아래와 같은 내용들을 추가하여 준다.
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
  • 사용하려는 소셜 로그인을 골라서 INSTALLED_APPS에 추가하여 준다.
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.instagram',
'allauth.socialaccount.providers.kakao',
'allauth.socialaccount.providers.naver',

 

📚  urls.py 내용 추가

settings.py 와 같은 디렉터리에 있는 urls.py에 아래의 내용 추가- accounts/로 시작하는 요청들을 allauth에 있는 url들을 이용해서 처리할 수 있습니다.

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

 

 

📚  py manage.py migrate

admin 페이지에 들어가면 아래와 같은 테이블들이 생성되어있는 것을 볼 수 있습니다.

 

이후 네이버,구글등을 이용하여 소셜로그인 기능을 사이트에 연동하는 내용은 다음 글에 작성하겠다.

반응형