[Django] 소셜 로그인 allauth

Gooder·2021년 5월 4일
0

allauth 공식 문서
위의 문서를 보고 내용을 정리해서 실제 프로젝트에 소셜 로그인을 적용하는 법을 알아보려합니다.

pip install django-allauth

으로 allauth 패키지를 설치해줍니다.

그 후 settings.py에 있는 TEMPLATES 리스트에

# `allauth` needs this from django
'django.template.context_processors.request',

를 추가해줍니다.

그리고 settings.py에서 로그인 과정을 처리해줄 백엔드를 알려주는 리스트를 다음과 같이 설정해줍니다. 그리고 SITE_ID = 1이라 설정해주시면 됩니다. SITE_ID는 이후에 사이트 어플리케이션에 관한 쿼리를 이용할 때 PK로 사용됩니다. 관련 내용은

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

그리고 settings.py에 있는 INSTALLED_APPS에는

    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    
    #providers에 있는 것들 중에서 사용하려는 소셜 로그인을 골라줍니다.
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.instagram',
    'allauth.socialaccount.providers.kakao',
    'allauth.socialaccount.providers.naver',

저는 구글과 인스타그램, 카카오, 네이버를 사용해서 실습해볼 예정이라서 이렇게 3개만 넣었습니다.

그 후에 settings.py 가 있는 디렉터리에 존재하는 urls.py에 아래의 코드를 추가해줍니다.

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

이렇게 하면 accounts/로 시작하는 요청들을 allauth에 있는 url들을 이용해서 처리할 수 있습니다.
url들

사용가능한 url들은 이 글에서 설정한 것들만 해놓으면 위와 같습니다.

그 후 python manage.py migrate를 해줍니다.

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

기본적인 세팅이 끝났습니다. 다음 글에서는 본격적으로 어떻게 소셜 로그인을 적용할 수 있는지 확인해보겠습니다.

profile
세상을 변화시킬 신스틸러 서비스를 만들고싶은 개발자 Gooder 입니다.

0개의 댓글