Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

JAN's History

JWT 인증 방식 시큐리티 동작 원리 본문

JWT

JWT 인증 방식 시큐리티 동작 원리

JANNNNNN 2024. 6. 5. 10:20

회원가입

내부 회원가입 로직은 세션 방식과 JWT 방식의 차이가 없다.

  • Api 서버이기 때문에 POST URL로 데이터를 요청합니다.
  • JoinController에서 어느정도 로직을 진행하고
  • JoinService에서 UserEntity로 데이터를 담아서 DB, UserRepository에 저장합니다.

로그인 (인증)

로그인 요청을 받은 후 세션 방식은 서버 세션이 유저 정보를 저장하지만 JWT 방식은 토큰을 생성하여 응답한다.

  • username, password로 요청이 오면 AuthenticationFilter를 통해서 특정한 회원검증을 하는 로직을 작성합니다.
  • AuthenticationManager를 통해 내부  DB의 Id와 PW를 던져서 유저를 검증합니다.
  • 성공적으로 검증이 되면 successfulAuth메서드를통해 JWT util 토큰을 통해 데이터를 저장합니다.

➡️회원 정보를 검증하는 방식은 Session과 동일합니다.

경로 접근 (인가)

JWT Filter를 통해 요청의 헤더에서 JWT를 찾아 검증을하고 일시적 요청에 대한 Session을 생성한다. (생성된 세션은 요청이 끝나면 소멸됨)

  • POST요청이 오면 Security Authentication Filter가 검증을 진행하고 그 다음 JWT Filter를 우리가 강제로 커스텀해 만들어 검증을 진행합니다.
  • 여기에서 Token이 알맞게 존재하고 정보가 일치한다고 하면 Security ContentHolder Session에서 Session을 만들어줍니다.
  • 그리고 특정한 경로로 들어가면 Session을 통해 로그인 상태를 유지할 수 있습니다.
  • 그러나 경로마다 Session을 새로 발급해줘야 한다는 단점이 있습니다.