동작원리

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