글의 목적
- Refresh Token & Access Token에 대해서 집중적으로 알아보고 보안문제들을 파악해보려고 함.
본론
Refresh Token & Access Token
- 두 토큰 모두 JWT 기반이다.
- Access Token은 API 요청을 할때 검증용 토큰으로 사용된다. 즉, 인증이 필요한 API를 사용할때는 꼭 Access Token을 Header에 넣어서 보내야 한다.
- 예) 유저 정보 수정
- Refresh Token은 Access Token을 추가로 발급할때 사용된다. Access Token을 새로고침(Refresh)하는 기능이 있기 때문에 Refresh Token이라고 부른다.
- Access Token은 유효기간이 짧고 Refresh Token은 유효기간이 길다.
- 자주 노출되는 Access Token은 유효기간을 짧게해서 Token이 탈취돼도 해커가 오래 사용하지 못하도록 방지할 수 있다.
- 상대적으로 노출이 적은 Refresh Token의 경우 Access Token을 새로 발급받을때만 사용되기 때문에 탈취 가능성이 적다.
토큰 발급 과정
Refresh Token 사용 과정
Access Token 사용 과정
Refreshing Logic
결론
- 진작부터 정리해둘걸 하는 아쉬움이 있다.
- 그래도 부족한 부분을 많이 발견하게 되었고, cookie, session, token에 대해서 정리가 되었다.
'데일리' 카테고리의 다른 글
[2023.11.26] session과 jwt token 집중 비교 (0) | 2023.11.26 |
---|---|
[2023.11.26] 내가 놓치고 있던 부분을 발견하여 정리3 (vscode 디버깅) (4) | 2023.11.26 |
[2023.11.24] 내가 놓치고 있던 부분을 발견하여 정리2 (PM2, NGINX, gzip) (2) | 2023.11.24 |
[2023.11.24] 내가 놓치고 있던 부분을 발견하여 정리1 (cookie, session, JWT) (2) | 2023.11.24 |
[2023.11.15] Redis 이해하기 (1) | 2023.11.15 |