2022. 11. 28. 04:16ㆍ스파르타코딩(22.8.29~22.12.31)/TIL(Today I Learned)
- Today I Learned
JWT 구조와 Access Token / Refresh Token 뜻,과정
- JWT 구조
JWT는 [ . ] 을 구분자로 나누어지는 세 가지 문자열의 조합이다.
[ . ] 을 기준으로 좌측부터 , Payload, Signature를 의미한다.
Header : JWT 에서 사용할 타입과 해시 알고리즘의 종류가 담겨있으며,
Payload : 서버에서 첨부한 사용자 권한 정보와 데이터가 담겨있다.
Signature : Header, Payload 를 Base64 URL-safe Encode 를 한 이후
Header 에 명시된 해시함수를 적용하고, 개인키(Private Key)로 서명한 전자서명이 담겨있다.
전자서명에는 비대칭 암호화 알고리즘을 사용하므로 암호화를 위한 키와 복호화를 위한 키가 다르다.
암호화(전자서명)에는 개인키를, 복호화(검증)에는 공개키를 사용한다.
페이로드의 종류 3가지 더보기 ↓
Registered claims
Public claims
Private claims
![](https://blog.kakaocdn.net/dn/dP9IrS/btrSa8ewL0a/AGuDIRnW2sYgYIlBqK1UD1/img.png)
- Access Token / Refresh Token 란?
- Refresh Token : 새로운 Access Token을 발급해주기 위해 사용하는 토큰으로
짧은 수명을 가지는 Access Token에게 새로운 토큰을 발급해주기 위해 사용.
해당 토큰은 보통 데이터베이스에 유저 정보와 같이 기록.
*Refresh:새로고침 - Access Token : 클라이언트가 갖고있는 실제로 유저의 정보가 담긴 토큰
클라이언트에서
1.요청이 오면
2.서버에서 해당 토큰에 있는 정보를 활용하여
3.사용자 정보에 맞게 응답을 진행
*Access:입장,접근
- Access Token / Refresh Token 인증 과정
위에서도 보듯이 JWT 인증 방식을 만약 Access Token 만을 이용하면,
Access Token은 발급된 이후 서버에 저장되지 않고 클라이언트에 저장되어 토큰 자체로 검증을 하며,
사용자 권한 인증을 진행하기 때문에, Access Token이 탈취되면 토큰이 만료되기 전 까지,
토큰을 획득한 사람은 누구나 권한 접근이 가능해지는 문제점이 있었다.
그래서 토큰의 유효 시간을 부여하여 탈취 문제에 대해 대응을 하기도 하지만,
만일 유효 기간이 짧을 경우 그만큼 사용자는 로그인을 자주해야 하는 번거로움이 있다.
따라서 이러한 문제를 해결하기 위해 Refresh Token 이라는 추가적인 토큰을 활용하여
토큰을 이중 장막을 쳐서 보다 보안을 강화하는 식으로 보면 된다.
Refresh Token 이라는 추가적인 토큰을 활용하여 토큰을 이중 장막을 쳐서 보다 보안을 강화하는 식
'스파르타코딩(22.8.29~22.12.31) > TIL(Today I Learned)' 카테고리의 다른 글
[TIL] Simple JWT setting , encoded 22/11/22 17일차 (0) | 2022.11.29 |
---|---|
[TIL] (JWT) Token이란? 22/11/18 15일차 (0) | 2022.11.27 |
[TIL] Cookie VS Session, 웹 스토리지 22/11/17 14일차 (0) | 2022.11.27 |
[TIL] REST / REST API / RESTful이란? 22/11/16 13일차 (0) | 2022.11.25 |
[TIL] 관계형 Model (1 대 1,Many Field) 22/11/15 12일차 미완 (0) | 2022.11.17 |