소셜 로그인 연동
Django 애플리케이션에 소셜 로그인 기능을 추가하는 것은 사용자들에게 편리한 로그인 경로를 제공하는 좋은 방법입니다. Django는 다양한 소셜 로그인 프로바이더를 지원하며, 간단한 설정만으로 소셜 로그인을 쉽게 연동할 수 있습니다.
1. 소셜 로그인 프로바이더 등록
먼저, 연동하려는 소셜 로그인 프로바이더에 개발자 계정을 생성하고 등록해야 합니다. 각 소셜 로그인 프로바이더들은 공식 문서에서 등록 방법을 안내하고 있습니다. 로그인 프로바이더 별로 제공되는 클라이언트 ID와 시크릿 키를 받아두세요.
2. Django-allauth 설치
소셜 로그인을 구현하기 위해 Django-allauth 패키지를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.
pip install django-allauth
3. Django-allauth 설정
settings.py
파일을 열어 다음과 같이 Django-allauth를 설정합니다.
INSTALLED_APPS = [
...
'allauth',
'allauth.account',
'allauth.socialaccount',
...
]
AUTHENTICATION_BACKENDS = [
...
'allauth.account.auth_backends.AuthenticationBackend',
...
]
SITE_ID = 1
LOGIN_REDIRECT_URL = '/'
이 설정은 Django-allauth를 사용해 소셜 로그인을 처리하기 위한 필수 설정입니다.
4. 소셜 로그인 프로바이더 설정
settings.py
파일에 다음과 같이 각 소셜 로그인 프로바이더의 클라이언트 ID와 시크릿 키를 추가합니다. 아래 예제는 Google 로그인 연동을 위한 설정입니다. 다른 소셜 로그인 프로바이더들은 해당 프로바이더에 맞는 설정을 추가해야 합니다.
SOCIALACCOUNT_PROVIDERS = {
'google': {
'APP': {
'client_id': 'YOUR CLIENT ID',
'secret': 'YOUR SECRET KEY',
'key': ''
}
},
...
}
5. URL 설정
urls.py
파일을 열어 URL 설정을 추가합니다. 아래 예제는 소셜 로그인을 위한 URL 패턴을 등록한 것입니다.
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
...
path('accounts/', include('allauth.urls')),
path('admin/', admin.site.urls),
...
]
6. 템플릿 수정
소셜 로그인을 제공하는 템플릿 파일을 수정해야 합니다. 기본 템플릿 경로는 templates/account
입니다. 다음 예제는 소셜 로그인 버튼을 추가한 템플릿 파일입니다.
<!-- login.html -->
...
<a href="{% provider_login_url 'google' %}">Google 로그인</a>
...
위와 같이 템플릿 파일을 수정하여 원하는 소셜 로그인 버튼을 추가할 수 있습니다.
이제 소셜 로그인이 연동된 Django 애플리케이션이 준비되었습니다. 사용자는 연동한 소셜 로그인 프로바이더로부터 로그인 할 수 있습니다.
참고 자료
- Django-allauth 공식 문서: https://django-allauth.readthedocs.io/
- Django 공식 문서: https://docs.djangoproject.com/