Compare commits

..

No commits in common. "a6daff4e3863eed9c772014a83de8234209f43f4" and "8ae2a68ae42ce566baf32f8ea4014a02bfbbf4c7" have entirely different histories.

1 changed files with 6 additions and 13 deletions

View File

@ -7,7 +7,7 @@
from typing import Optional from typing import Optional
from fastapi import APIRouter, Depends, Header, Request, status from fastapi import APIRouter, Depends, Header, Request, status
from fastapi.responses import RedirectResponse, Response from fastapi.responses import Response
from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.ext.asyncio import AsyncSession
from app.database.session import get_session from app.database.session import get_session
@ -45,20 +45,21 @@ async def kakao_login() -> KakaoLoginResponse:
@router.get( @router.get(
"/kakao/callback", "/kakao/callback",
response_model=LoginResponse,
summary="카카오 로그인 콜백", summary="카카오 로그인 콜백",
description="카카오 인가 코드를 받아 로그인/가입을 처리하고 프론트엔드로 리다이렉트합니다.", description="카카오 인가 코드를 받아 로그인/가입을 처리하고 JWT 토큰을 발급합니다.",
) )
async def kakao_callback( async def kakao_callback(
request: Request, request: Request,
code: str, code: str,
session: AsyncSession = Depends(get_session), session: AsyncSession = Depends(get_session),
user_agent: Optional[str] = Header(None, alias="User-Agent"), user_agent: Optional[str] = Header(None, alias="User-Agent"),
) -> RedirectResponse: ) -> LoginResponse:
""" """
카카오 로그인 콜백 카카오 로그인 콜백
카카오 로그인 성공 발급받은 인가 코드로 카카오 로그인 성공 발급받은 인가 코드로
JWT 토큰을 발급하고 프론트엔드로 리다이렉트합니다. JWT 토큰을 발급합니다.
신규 사용자인 경우 자동으로 회원가입이 처리됩니다. 신규 사용자인 경우 자동으로 회원가입이 처리됩니다.
""" """
@ -70,21 +71,13 @@ async def kakao_callback(
if forwarded_for: if forwarded_for:
ip_address = forwarded_for.split(",")[0].strip() ip_address = forwarded_for.split(",")[0].strip()
result = await auth_service.kakao_login( return await auth_service.kakao_login(
code=code, code=code,
session=session, session=session,
user_agent=user_agent, user_agent=user_agent,
ip_address=ip_address, 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( @router.post(
"/kakao/verify", "/kakao/verify",