Skip to content

oauth2 로그인

snanoh edited this page Jul 26, 2022 · 3 revisions

Oauth2 로그인

참고 블로그 : https://deeplify.dev/back-end/spring/oauth2-social-login#securityconfig


image

구글 예시

  1. 구글 소셜 로그인 요청
  2. 백엔드로 GET “/oauth2/authorization/{provider-id}?redirect_uri=http://localhost:3000/oauth/redirect”으로 OAuth 인가 요청(redirect_uri 변경 가능)
    예시 index.html
  3. Authorization Code 인증을 할 수 있도록 리다이렉트 (Redirect: GET “https://oauth.google.com/oauth2.0/authorize?…”)
  4. 리다이렉트 화면에서 구글 서비스에 로그인
  5. 로그인이 완료된 후, Athorization server로부터 백엔드로 Authorization 코드 응답
  6. 백엔드에서 인가 코드를 이용하여 Authorization Server에 엑세스 토큰 요청
  7. 엑세스 토큰 획득
  8. 엑세스 토큰을 이용하여 Resource Server에 유저 데이터 요청
  9. 획득한 유저 데이터를 DB에 저장 후, JWT 엑세스 토큰과 리프레시 토큰을 생성
  10. 리프레시 토큰은 수정 불가능한 쿠키에 저장하고, 엑세스 토큰은 프로트엔드 리다이렉트 URI 에 쿼리스트링에 토큰을 담아 리다이렉트 (Redirect: GET http://localhost:3000/oauth/redirect?token={jwt-token})
  11. 프론트엔드에서 토큰을 저장 후, API 요청 시 헤더에 Authroization: Bearer {token}을 추가하여 요청
  12. 백엔드에서는 토큰을 확인하여 권한 확인
  13. 토큰이 만료된 경우, 쿠키에 저장된 리프레시 토큰을 이용하여 엑세스 토큰과 리프레시 토큰을 재발급
Clone this wiki locally