동작원리

Untitled

  1. 클라이언트가 서버의 (GET) /oauth2/authorization/서비스명 으로 소셜로그인 요청을 보냄
  2. 서버 내부의 OAuth2AuthorizationReqeustRedirectFilter가 위 요청을 가로채서 외부의 네이버 같은 소셜 로그인 인증 서버에 요청을 보냄
  3. 인증서버는 위 요청에 받고 클라이언트로 로그인 페이지를 응답해줌
  4. 로그인 페이지에서 사용자는 로그인 진행
  5. 로그인이 성공하면 인증서버에 미리 등록해둔 우리 서버의 리다이렉트 url /login/oauth2/code/서비스명 으로 인증서버가 code를 보냄
  6. 서버 내부의 OAuth2LoginAuthenticationFilter가 위 요청을 가로채서 OAuth2LoginAuthenticationProvider로 code를 보냄
  7. code를 인증서버로 보내서 Access 토큰 발급 받기
  8. Access 토큰을 리소스 서버로 보내서 유저 정보 얻기
  9. OAuth2Service의 메소드를 호출해서 DB의 유저 정보 얻기
  10. 이제 로그인이 성공한 것으로 로그인 성공 핸들러가 동작해 JWT를 발급해 줌
  11. 이후 다른 요청을 서버로 보낼 때 JWTFilter에서 JWT 검증 후 존재하면 세션을 생성

각각의 필터가 동작하는 주소

<aside> 🔗 모든 주소에서 동작

</aside>