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 방식