Django - 카카오 로그인 01 - Django에서 카카오 소셜 로그인을 설정하고 /login/
으로 연결하는 방법
Django에서 카카오 소셜 로그인을 설정하고 /login/
으로 연결하는 방법
Django 프로젝트에서 카카오 소셜 로그인을 설정하고 /login/
URL에서 카카오 로그인으로 자동 리디렉션되도록 구현하는 방법을 단계별로 정리했습니다.
1. 카카오 디벨로퍼스 설정
1.1. 카카오 개발자 계정 가입
- 카카오 디벨로퍼스에서 계정을 생성하고 새 애플리케이션을 등록합니다.
1.2. 플랫폼 및 Redirect URI 등록
- [내 애플리케이션] > [카카오 로그인] > [Redirect URI] 에 아래 URI를 추가합니다:
http://www.devmiro.co.kr/accounts/oauth/complete/kakao/
- 개발 환경에서는:
http://localhost:8088/accounts/oauth/complete/kakao/
- 개발 환경에서는:
1.3. 카카오 REST API 키 확인
- 앱 키에서
REST API 키
를 확인하여 Django 설정에 반영할 준비를 합니다.
2. Django 프로젝트 설정
2.1. 패키지 설치
pip install social-auth-app-django
2.2. settings.py
수정
카카오 OAuth 설정을 추가합니다.
INSTALLED_APPS += [
'social_django', # 소셜 로그인 앱 추가
]
AUTHENTICATION_BACKENDS = [
'social_core.backends.kakao.KakaoOAuth2', # 카카오 OAuth2 백엔드
'django.contrib.auth.backends.ModelBackend', # Django 기본 인증
]
# 카카오 OAuth 키 설정
SOCIAL_AUTH_KAKAO_KEY = '<REST_API_KEY>' # 카카오 REST API 키
SOCIAL_AUTH_KAKAO_SECRET = '' # Secret Key는 필요 없음
SOCIAL_AUTH_KAKAO_REDIRECT_URI = 'http://www.devmiro.co.kr/accounts/oauth/complete/kakao/' # 배포 환경
# 개발 환경에서는 아래처럼 변경 가능
# SOCIAL_AUTH_KAKAO_REDIRECT_URI = 'http://localhost:8088/accounts/oauth/complete/kakao/'
# 로그인/로그아웃 URL 설정
LOGIN_URL = '/login/' # 로그인 페이지
LOGIN_REDIRECT_URL = '/download-list/' # 로그인 성공 후 이동할 페이지
LOGOUT_REDIRECT_URL = '/' # 로그아웃 후 이동할 페이지
# HTTPS 강제 여부 (배포 환경에서는 True, 개발 환경에서는 False)
SOCIAL_AUTH_REDIRECT_IS_HTTPS = False
3. URL 설정
Django에서 /login/
을 카카오 로그인 페이지로 자동 리디렉션하도록 설정합니다.
3.1. urls.py
수정
from django.contrib import admin
from django.urls import path, include
from django.shortcuts import redirect
def redirect_to_kakao_login(request):
""" /login/ URL을 카카오 로그인으로 리디렉션 """
return redirect('/accounts/oauth/login/kakao/')
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('file_manager.urls')),
path('accounts/oauth/', include('social_django.urls', namespace='social')),
path('login/', redirect_to_kakao_login, name='login'), # /login/을 카카오 로그인으로 리디렉션
]
4. Django 데이터베이스 마이그레이션
카카오 OAuth 데이터를 저장할 테이블을 생성합니다.
python manage.py makemigrations social_django
python manage.py migrate
5. 테스트 및 검증
5.1. Django 서버 실행
python manage.py runserver
5.2. 카카오 로그인 테스트
- 브라우저에서
/login/
접속http://www.devmiro.co.kr/login/
을 열면 자동으로http://www.devmiro.co.kr/accounts/oauth/login/kakao/
로 이동합니다.
- 카카오 로그인 창에서 인증
- 카카오 계정으로 로그인 후,
LOGIN_REDIRECT_URL
(/download-list/
)로 이동하는지 확인합니다.
- 카카오 계정으로 로그인 후,
6. 추가 기능
6.1. 카카오 로그인 버튼 추가
템플릿 (templates/login.html
)에서 직접 카카오 로그인 버튼을 추가할 수 있습니다.
<a href="url 'social:begin' 'kakao' ">카카오로 로그인</a>
6.2. 사용자 정보 저장
카카오 로그인 시 이메일이나 프로필 정보를 가져오려면 settings.py
에 다음을 추가합니다:
SOCIAL_AUTH_KAKAO_SCOPE = ['account_email', 'profile']
Django 관리자 페이지에서 사용자 정보를 확인하려면:
python manage.py createsuperuser
생성된 계정으로 http://localhost:8088/admin/
에 로그인하면 social_django
테이블에서 인증된 사용자 정보를 볼 수 있습니다.
7. 최종 정리
- 카카오 디벨로퍼스에서 Redirect URI 설정
social-auth-app-django
패키지 설치 및settings.py
설정/login/
을 카카오 로그인으로 리디렉션 (urls.py
수정)- 마이그레이션 적용 (
python manage.py migrate
) - 테스트 (
http://www.devmiro.co.kr/login/
에서 카카오 로그인 확인)
이제 Django에서 /login/
을 사용하여 카카오 소셜 로그인을 구현할 수 있습니다! 🚀
댓글남기기