본문 바로가기
❤️‍🔥TIL (Today I Learned)

[TIL] 2023-01-04(48day)

by elicho91 2023. 1. 4.

 Access Token & Refresh Token


👉 JWT(JSON Web Token) 

- 유저를 인증하고 식별하기 위한 토큰이다. 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장.

 

👉 Access Token & Refresh Token

 - Refresh Token은 Access Token과 똑같은 형태의 JWT

 - Refresh Token은 긴 유효기간을 가지면서, Access Token이 만료됐을 때 새로 발급해주는 열쇠가 된다.

 

ex) 1. Refresh Token의 유효기간은 2주, Access Token의 유효기간은 1시간.

      2. 사용자는 API 요청을 하다가 1시간이 지나면, 가지고 있는 Access Token은 만료.

      3. 그러면 Refresh Token의 유효기간 전까지는 Access Token을 새롭게 발급받을 수 있다. 
      4. 사용자는 Refresh Token은 안전한 저장소에 저장 후, Access Token을 헤더에 실어 요청을 보낸다.

 

👉 Refresh Token을 사용하는 이유?

 - Access Token을 통한 인증 방식의 문제는 만일 제 3자에게 탈취당할 경우 보안에 취약하다.

Refresh Token은 서버에 저장되기 때문에(stateful) 해커에 의해 탈취당했따고 판단되었을 때 서버에서 Refresh Token을 삭제함으로써 강제 로그아웃 시킬 수 있다.

 - access token은 보안적으로 취약하니 2시간 정도로 짧게 가져가고, refresh token은 처리 비용이 많이 들기 때문에 2주 정도로 길게 가져가는 방식을 주로 사용.


🙋‍♂️ 소감 : 

프로젝트 코드리뷰를 받으면서 추가기능이었던  Access Token & Refresh Token 에 대해 배울 수 있었다.

이번 프로젝트에서 시큐리티를 맡으면서 같이 했어야 하는 기능인데, 추가부분이라 엄두를 못내었다.

개념적인 부분은 이번기회에 많이 이해가 되었으니 코드 연습을 해봐야겠다.

😈 아는 내용이라고 그냥 넘어가지 않기! 😈

'❤️‍🔥TIL (Today I Learned)' 카테고리의 다른 글

[TIL] 2023-01-06(50day)  (0) 2023.01.06
[TIL] 2023-01-05(49day)  (0) 2023.01.06
[TIL] 2023-01-03(47day)  (0) 2023.01.03
[TIL] 2023-01-02(46day)  (0) 2023.01.02
[TIL] 2022-12-30(45day)  (0) 2023.01.01

댓글