OAuth 플로우
1.
사용자가 로그인을 요청 (클라이언트 → 서버)
/auth/kakao, /auth/google 등으로 소셜 로그인을 요청
2.
서버가 소셜 서비스의 인증페이지로 사용자를 리디렉션
3.
소셜 서비스가 사용자의 로그인을 처리
4.
소셜 서비스가 인증 코드를 발급 (소셜 서비스 → 서버)
5.
서버가 소셜 서비스에 엑세스 토큰을 요청 (서버 → 소셜 서비스)
6.
소셜 서비스가 서버로 엑세스 토큰을 발급 (소셜 서비스 → 서버)
7.
서버는 엑세스 토큰을 사용하여 소셜 서버에 사용자 정보를 요청(서버 → 소셜 서비스)
8.
소셜 서비스는 서버에 사용자 정보를 반환(소셜 서비스 → 서버)
9.
서버는 사용자 정보를 바탕으로 JWT 토큰을 생성
10.
서버는 JWT토큰을 클라이언트에 반환 (서버 → 클라이언트)
•
Example
Kakao
1. 클라이언트에서 Kakao로 로그인 요청 (GET /auth/kakao)
2. 서버에서 Kakao 로그인 페이지로 리디렉션
Redirect to: https://kauth.kakao.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code
3. Kakao 로그인 완료 후, 서버로 리디렉션
Redirect to: https://your-server.com/auth/kakao/callback?code=ABCD1234
4. 서버에서 code를 추출하고 엑세스 토큰을 요청
5. Kakao에서 엑세스 토큰 발급
6. 엑세스 토큰으로 Kakao에 유저정보 요청
7. 유저정보를 바탕으로 JWT를 만들어 클라이언트로 반환
TypeScript
복사