[django] Allauth를 활용하여 소셜 로그인 구현하기(요약)

dhleeone·2022년 1월 15일
0

Allauth는 장고에서 소셜 로그인을 구현할 수 있는 라이브러리이다.

공식 문서 링크

다음 명령어를 통해 allauth를 인스톨할 수 있다.

pip install django-allauth

이후 settings.py를 수정한다.

# settings.py

INSTALLED_APPS = [
...
    # allauth
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.kakao',
 ...
]


AUTHENTICATION_BACKENDS = (

 	'django.contrib.auth.backends.ModelBackend',
 	'allauth.account.auth_backends.AuthenticationBackend',
)

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
               ...
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

SITE_ID = 1

# 로그아웃시 이동하는 URL
LOGOUT_REDIRECT_URL = '/'


#카카오톡 소셜 로그인 리다이렉트 설정
SITE_ID = 1
LOGIN_REDIRECT_URL = '/'  # 로그인 후 리다이렉트 될 경로

나는 카카오톡을 사용했기 때문에
allauth.socialaccount.providers.kakao를 installed_apps에 추가했다.

다음 root urls.py를 수정한다.

#urls.py

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

다음으로 migrate를 진행해준다.

python manage.py migrate


이제 admin의 social application에 접속하여 카카오 디벨로퍼에서 앱을 생성 후 받은 restapi key를 client id에 추가하고 site를 추가한다.

카카오 디벨로퍼 링크

(카카오 디벨로퍼에서 콜백 URL 지정 등 세부 설정을 완료해야 한다)

추가적으로 allauth 템플릿은 site-packages/allauth/templates에서 수정이 가능하다.

profile
하루하루 쌓아가는 개발 지식📦

0개의 댓글