개요
이번 포스팅에서는 Spring Security와 밀접한 관련이 있는 Access Token과 Refresh Token에 대해 알아보겠습니다. 그리고 해당 개념을 어떻게 Spring Project에 접목해야 하는지 코드로 알아가보고자 합니다.
1. Access Token과 Refresh Token
위 그림을 설명하기에 앞서 Access Token과 Refresh Token이 무엇인지 알아야 합니다.
Access Token 이란?
Refresh Token 이란?
Access Token은 수명이 있습니다. 만료가 되면 API에 접근 할 수 없음 → 그럴 때 마다 Access Token을 발급 받아야 하는가?
이러한 불편함을 최소화 하는 것이 Refresh Token 입니다.
사용자가 로그인을 하면 DB에 회원을 조회하고 있다면 AccessToken과 RefreshToken을 발급합니다.
그리고 AccessToken과 RefreshToken을 반환합니다.
2. Spring Security에 적용하기
우선 JWT를 사용하기에 앞서 몇 가지 설정해야될 사항들이 있습니다.
•
session도 비활성화 해주세요!
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
Java
복사
REST API로 구현된 서버는 세션을 사용하지 않습니다.
•
JwtAuthenticationFilter는 UsernamePasswordAuthenticationFilter 전에 동작하게 해주세요!
만약 Token이 있다면 username과 password를 활용한 검증은 필요하지 않습니다.