728x90
Access Token과 Refresh Token
어세스 토큰 (AccessToken)?
어세스 토큰은 접근/인증에 관여하는 토큰
리프레시 토큰 (Refresh Token)?
리프레시 토큰은 재발급에 관여하는 토큰
JWT는 발급한 후, 삭제가 불가능하기 때문에 만약의 경우에 탈취를 당했을 경우, 삭제가 불가능 하기 때문에 접근에 관여하는 토큰은 유효시간을 짧게 해야한다.
하지만 자동 로그인 혹은 로그인 유지를 위해서는 유효시간이 긴 토큰이 필요하다. 이때 사용되는 것이 Refresh Token 이다.
Access Token의 재발급 방법
그럼 어떻게 재발급에 관여하는지 알아보자.
보통 Refresh Token은 로그인 성공시 발급되며 저장소에 저장하여 관리된다.
그리고 사용자가 로그아웃을 하면 저장소에서 Refresh Token을 삭제하여 사용이 불가능하도록 한다. 사용이 불가능한 이유는 아래 재발급 과정을 확인하면 알 수 있다.
Access Token이 만료되어, 재발급이 진행되면 다음의 과정을 통해 재발급이 된다.
- Refresh Token 유효성 체크
- 저장소에 Refresh Token 존재유무 체크
- 1, 2 모두 검증되면 재발급 진행
- Response header에 새로 발급한 Access Token 저장
이후 클라이언트는 재발급된 Access Token을 Request헤더에 포함하여 요청을 보내면 정상적으로 접근이 허용된다.
728x90
'개-발 > Java + Spring + Kotlin' 카테고리의 다른 글
[Spring] jwt토큰을 더 안전하게 ! (RefreshToken , Cookie) (9) | 2023.01.10 |
---|---|
[Spring] Cookie 란 무엇 '인가' ? (0) | 2023.01.10 |
[Spring] @PathVariable 어노테이션 (0) | 2023.01.01 |
[Spring] RefreshToken +Jwt + Redis (feat.Redis) (0) | 2022.12.28 |
[Spring] 연관관계 단방향, 양방향 (0) | 2022.12.27 |