Search

Nest OAuth 2.0

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
복사

Passport Strategy 방식