프로젝트

📌 2. Django 백엔드에 카카오 OAuth 연동 시작

Chansman 2025. 6. 13. 05:17

Django 백엔드에 카카오 OAuth 연동 시작할 차례야.


2️⃣ settings.py(.env) 환경변수 등록

카카오 REST API 키를 장고에서 읽을 수 있게 환경변수로 등록해야 해.

예시: .env 파일에 추가

KAKAO_CLIENT_ID=여기에_네_카카오_REST_API_키_붙여넣기
KAKAO_REDIRECT_URI=http://localhost:8000/oauth/kakao/callback/

settings.py에 등록

import os

KAKAO_CLIENT_ID = os.getenv("KAKAO_CLIENT_ID")
KAKAO_REDIRECT_URI = os.getenv("KAKAO_REDIRECT_URI")

(※ .env로 관리 중이면 dotenv 패키지로 로드되는지 확인!)


3️⃣ URL 세팅 (urls.py & oauth_urls.py 등)

  1. oauth/kakao/login/ : 카카오 로그인 페이지로 리다이렉트
  2. oauth/kakao/callback/ : 카카오에서 인증이 끝나고 돌아오는 콜백 URL
# settings/urls.py
path('oauth/', include('oauth.oauth_urls')),

# oauth/oauth_urls.py
from django.urls import path
from . import oauth_views

urlpatterns = [
    path('kakao/login/', oauth_views.KakaoLoginRedirectView.as_view()),
    path('kakao/callback/', oauth_views.kakao_callback),
    # ... 기존 naver, github 코드와 동일하게!
]
 

4️⃣ 카카오 로그인 리다이렉트 뷰 작성

oauth_views.py에 추가!

from django.views.generic import RedirectView
from django.conf import settings
from urllib.parse import urlencode

class KakaoLoginRedirectView(RedirectView):
    def get_redirect_url(self, *args, **kwargs):
        params = {
            'client_id': settings.KAKAO_CLIENT_ID,
            'redirect_uri': settings.KAKAO_REDIRECT_URI,
            'response_type': 'code',
        }
        url = "https://kauth.kakao.com/oauth/authorize?" + urlencode(params)
        return url

4️⃣ -1. 콜백 함수 먼저 만들어줘야 함!

oauth_views.py에 아래 코드(더미라도) 추가:

python
복사편집
from django.http import HttpResponse def kakao_callback(request): return HttpResponse("카카오 콜백! 아직 구현 전!")
  • 일단 이렇게만 넣어주면 import 에러 사라짐!
  • 이후 카카오 로그인 처리 로직은 차근차근 추가하면 됨.
  •  

✅ 여기까지 하면

  • /oauth/kakao/login/ 접속 → 카카오 로그인 화면으로 이동
  • 로그인 성공시, 카카오가 네가 설정한 콜백 주소로 ?code=xxx 파라미터와 함께 redirect