[OAuth2 Client JWT] 동작 원리와 프론트/백 책임 분배

원모어깨찰빵·2024년 3월 19일
0

스프링

목록 보기
12/17
post-thumbnail

Oauth2 Code Grant 방식의 동작 순서

  1. 로그인 페이지
  2. 성공 후 코드 발급 (redirect_url)
  3. 코드를 통해 Access 토큰 요청
  4. Access 토큰 발급 완료
  5. Access 토큰을 통해 유저 정보 요청
  6. 유저 정보 획득 완료

세션 방식에서 OAuth2 클라이언트 동작 원리


로그인창 요청 -> 인증서버로 리다이렉트 -> 로그인창 띄워짐 -> 로그인 성공시 우리 서버로 리다이렉트되어 코드 전송 -> 해당 코드로 인증 서버에 방문하여 액세스 토큰 생성 요청 -> 토큰으로 리소스 서버에서 유저 정보 획득 -> 유저 정보로 OAuth2서비스에서 OAuth2User에 담아서 로그인 진행 -> 로그인 성공시 로그인 핸들러가 동작하여 JWT 발급
이후 클라이언트는 API 서버에 접근할 때 JWT를 보냄 -> JWT필터가 검증하여 내부에 임시적인 세션을 만들고, 이후 세션을 참고하며 리소스 반환

각 필터가 동작되는 주소

JWTFilter
직접 커스텀하여 등록
모든 주소에서 동작
OAuth2AuthorizationRequestRedirectFilter
자동으로 생성됨
/oauth2/authorization/서비스명 에서 동작
OAuth2LoginAuthenticationFilter : 외부 인증 서버에 설정할 redirect_uri
/login/oauth2/code/서비스명 에서 동작

OAuth2 클라이언트에서 직접 구현해야 할 부분

  • OAuth2UserDetailsService
  • OAuth2UserDetails
  • LoginSuccessHandler

JWT에서 직접 구현해야 할 부분

  • JWTFilter
  • JWTUtil : JWT를 발급 및 검증하는 클래스

JWT방식에서 OAuth2 클리이언트 구성시 백엔드와 프론트엔드의 책임 분배

개발자 유미 블로그 참고

Reference

개발자 유미 유튜브

profile
https://fuzzy-hose-356.notion.site/1ee34212ee2d42bdbb3c4a258a672612

0개의 댓글