From 72e06ee951b7221d87e33a10672e9ad29ff8cd75 Mon Sep 17 00:00:00 2001 From: hbyang Date: Wed, 21 Jan 2026 14:59:55 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=B4=EC=B9=B4=EC=98=A4=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20redirect=20=EC=B2=98=EB=A6=AC=20.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/user/api/routers/v1/auth.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/user/api/routers/v1/auth.py b/app/user/api/routers/v1/auth.py index 2ba6768..0ebf309 100644 --- a/app/user/api/routers/v1/auth.py +++ b/app/user/api/routers/v1/auth.py @@ -7,7 +7,7 @@ from typing import Optional from fastapi import APIRouter, Depends, Header, Request, status -from fastapi.responses import Response +from fastapi.responses import RedirectResponse, Response from sqlalchemy.ext.asyncio import AsyncSession from app.database.session import get_session @@ -45,21 +45,20 @@ async def kakao_login() -> KakaoLoginResponse: @router.get( "/kakao/callback", - response_model=LoginResponse, summary="카카오 로그인 콜백", - description="카카오 인가 코드를 받아 로그인/가입을 처리하고 JWT 토큰을 발급합니다.", + description="카카오 인가 코드를 받아 로그인/가입을 처리하고 프론트엔드로 리다이렉트합니다.", ) async def kakao_callback( request: Request, code: str, session: AsyncSession = Depends(get_session), user_agent: Optional[str] = Header(None, alias="User-Agent"), -) -> LoginResponse: +) -> RedirectResponse: """ 카카오 로그인 콜백 카카오 로그인 성공 후 발급받은 인가 코드로 - JWT 토큰을 발급합니다. + JWT 토큰을 발급하고 프론트엔드로 리다이렉트합니다. 신규 사용자인 경우 자동으로 회원가입이 처리됩니다. """ @@ -71,13 +70,21 @@ async def kakao_callback( if forwarded_for: ip_address = forwarded_for.split(",")[0].strip() - return await auth_service.kakao_login( + result = await auth_service.kakao_login( code=code, session=session, user_agent=user_agent, ip_address=ip_address, ) + # 프론트엔드로 토큰과 함께 리다이렉트 + redirect_url = ( + f"http://localhost:3000" + f"?access_token={result.access_token}" + f"&refresh_token={result.refresh_token}" + ) + return RedirectResponse(url=redirect_url, status_code=302) + @router.post( "/kakao/verify",