소셜 로그인(카카오) 로직
- 카카오에게 로그인하고 싶다고 요청(GET
/oauth/authorize
) [프→카]
- 카카오측에서 사용자에게 카카오계정 로그인 요청 [카 → 프]
- 인가코드(authorization_code) 발급받음.
- 카카오는 인가코드를 요청 GET의 redirect_uri로 인가코드 전달 [카 → 프]
- 카카오에게 회원 정보 요청
- 인가 코드를 카카오 서버에 전달하여 access token 발급 받음 (POST
/oauth/token
)
- 인가 코드 전달**[프 → 백]**
- access token 발급 [백 → 카]
- access token을 이용하여 카카오 서버에서 회원 정보 전달 받음 (POST
/v2/user/me
) [카 → 백]
- DB에서 회원 정보 중복 확인 [백 → 프]
- DB에 회원 정보 있을 시, JWT 토큰 발급하여 Client에 전달
- DB에 회원 정보 없을 시, 회원 가입 로직을 Client에 요청
- Client에서 회원 가입 작성 후 Server(Spring)에 회원가입 요청
- Server(Spring)는 회원 정보 추가 후 JWT 토큰 발급
까까 : 프론트 ↔ 서버 사이 필요 API
API 작성 참고
로직 flow 이미지
- 인가코드를 Client가 받는 경우
- 인가코드를 Server(Spring)가 받는 경우
+)
refreshToken은 유효기간이 1개월 미만인 경우에만 갱신되어 반환된다. (카카오 기준)
→ 반환되지 않는 경우가 있을 수 있으므로 예외처리 필요