[WEB] Refresh 토큰과 Access 토큰을 사용하는 이유

sudog·2023년 10월 4일
0

WEB

목록 보기
6/9

토큰에 대해 공부하다 보면 refresh토큰과 access토큰이 등장한다. access토큰은 실제 인증에 사용되는 토큰, refresh토큰은 access토큰을 재발급하기 위한 토큰이다.
토큰을 사용해서 인증을 하는 것은 알겠는데, 왜 두 가지의 토큰을 사용하는 방식이 되었을까?

1. 보안

access토큰은 모든 요청시에 인증을 위해 서버로 함께 전달되어야 하므로 탈취 위험이 크다. 따라서 access토큰의 만료기간은 매우 짧게 설정되어 있고 탈취되더라도 악용될 시간이 적다. access토큰이 만료될 시에만 refresh토큰으로 재발급하므로 실제로 중요한 refresh토큰이 덜 노출되는 것이다.

2. 사용자 편의

만약 access토큰만 존재한다면 만료될 때마다 매번 로그인을 한다면 번거로울 것이다. 만료되면 자동으로 refresh토큰으로 갱신하므로 오랫동안 로그인 상태를 유지할 수 있다.

3. 서버/DB의 인증 비용 감소

매번 서버가 인증을 진행하지 않아도 refresh토큰으로 계속 인증을 유지할 수 있으므로 DB접근을 줄이고 효율적으로 서버의 리소스를 절약할 수 있다.


위 3가지는 서로 연결되어 있다. 보안을 위해 access토큰의 만료기간을 줄이면 사용자 편의성이 떨어지고 서버 인증 비용이 증가하는데, 이를 refresh토큰으로 보완하는 개념이라고 연결지으면 좋을 것 같다.

profile
안녕하세요

0개의 댓글