📌 3. Django 백엔드에 카카오 콜백 구현

2025. 6. 13. 05:23·프로젝트

카카오 콜백 구현

1️⃣ 카카오 Access Token 발급 요청

  • 콜백 URL로 받은 code 값을 이용해
  • 카카오 서버에 토큰 발급 요청 → access_token 받아오기

2️⃣ 카카오 프로필(사용자 정보) 요청

  • 발급받은 access_token으로 카카오 API 호출 → email 등 사용자 정보 획득

3️⃣ 이메일 기반 회원가입/로그인 처리

  • 기존 로직(User.objects.filter(email=email)) 활용해서 가입/로그인 분기

🚦 시작 코드 예시

콜백 함수 대략 구조:

import requests
from django.shortcuts import redirect

def kakao_callback(request):
    code = request.GET.get('code')
    if not code:
        return HttpResponse("코드 없음", status=400)

    # 1. Access Token 요청
    token_url = "https://kauth.kakao.com/oauth/token"
    data = {
        "grant_type": "authorization_code",
        "client_id": "카카오 REST API 키",
        "redirect_uri": "콜백 URL",
        "code": code,
    }
    token_response = requests.post(token_url, data=data)
    token_json = token_response.json()
    access_token = token_json.get("access_token")

    # 2. 사용자 정보 요청
    headers = {"Authorization": f"Bearer {access_token}"}
    profile_response = requests.get("https://kapi.kakao.com/v2/user/me", headers=headers)
    profile_json = profile_response.json()
    kakao_account = profile_json.get("kakao_account", {})
    email = kakao_account.get("email")

    # 3. email로 회원가입 or 로그인
    # ... (네이버/깃허브와 동일 로직 재활용!)

    # 4. 닉네임 입력 or 메인으로 리디렉트
    return redirect('main')

  • 카카오 REST API 키/리디렉트 주소는 반드시 본인 앱 것으로 넣기!
  • 만약 이메일 동의 항목 미설정 시 email이 안 올 수 있음 → [카카오 개발자센터]에서 동의항목 '이메일' 활성화 필요

'프로젝트' 카테고리의 다른 글

Docker /admin 해결  (0) 2025.06.14
📌 3. Django 백엔드 카카오 OAuth 최종코드  (0) 2025.06.13
📌 2. Django 백엔드에 카카오 OAuth 연동 시작  (0) 2025.06.13
📌 1. 카카오 개발자센터 OAuth 앱 등록 및 세팅  (0) 2025.06.13
📝 가계부 API (OpenAPI 3.0.3) 시각적 구조 요약 API 상세 명세서  (0) 2025.06.13
'프로젝트' 카테고리의 다른 글
  • Docker /admin 해결
  • 📌 3. Django 백엔드 카카오 OAuth 최종코드
  • 📌 2. Django 백엔드에 카카오 OAuth 연동 시작
  • 📌 1. 카카오 개발자센터 OAuth 앱 등록 및 세팅
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Python (32)
      • 프로젝트 (110)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    gpterror
    classaction
    chinanightlife
    college reunions
    youngprofessionals
    remittance
    뷔
    trumpmuskclash
    basalcellcarcinoma
    life reflection
    btsreunion
    self-growth
    btsjungkook
    bts
    newpoliticalparty
    btsdischarge
    americaparty
    americanlaw
    urbantrends
    homebartrend
    travel ban
    smartphonedurability
    hotcoffeecase
    global politics
    RM
    livebroadcast
    btscomeback
    chatgpterror
    titaniumcase
    lawsuitculture
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📌 3. Django 백엔드에 카카오 콜백 구현
상단으로

티스토리툴바