본문 바로가기
Java/Spring

Spring) refresh token

by NH_club 2023. 7. 23.
왜 refresh token을 사용 하는가?
더보기

토큰 기반 인증 방식에서 토큰은 stateless하다.

stateless(무상태)란 전달해야 하는 정보를 클라이언트 쪽에서 갖고 있는 것.

stateful(상태 유지)란 요청의 정보를 서버가 기억 하는 것.

https://roxy.iro.ooo/infra/protocol/http/http-stateful-stateless

stateless 하므로 서버 쪽에서는 한번 탈취당한 토큰을 사용자인지, 해커인지 확인할 방법이 없다.

Access Token에는 프론트엔드에서 사용되는 사용자의 정보가 담긴다. 물론 디코딩하면 값을 쉽게 알 수 있으니 민감한 정보를 담으면 안된다.
Refresh Token을 온리쿠키로 보내면 클라이언트 쪽에서 정보를 열어볼 수 없기 때문에 보안수준이 높다.
그래서 프론트 쪽에서 사용자 정보를 알아야 하니 사용자 정보가 담겨있는 Access Token을 유효기간을 짧게 해서 전달해주고, Refresh Token에는 Access Token을 재발급 받는 용도로 only cookie로 보내서 보안성을 강화한다. 이렇게 하면 Access Token만 줬을 때의 단점을 보완할 수 있다. 하지만 이 역시도 완벽한 방법은 아니긴 하다.

'Java > Spring' 카테고리의 다른 글

Spring) 테스트 코드 작성하기  (0) 2023.08.03
Spring) Spring Security  (0) 2023.07.24
23.07.19) CORS 에러 해결  (0) 2023.07.19
23-07-09) Spring 강의 노트  (0) 2023.07.09
23.07.07) Spring 강의 노트  (0) 2023.07.07