본문 바로가기

Docker

docker 와 redis와 jwt토큰의 상관관계?

jwt 토큰 - access token, refresh token

jwt구조 : 

 

예 : 

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

 

 

 

 

access token : 접근에 관여하는 토큰.

refresh token : 재발급에 관여하는 토큰.

 

jwt는 발급한 후 삭제가 불가능, 로그인 유지를 위해선 유효시간이 길어야 한다. 이때 필요한게 리프레시 토큰.

 

액세스 토큰 재발급 2가지 : 요청마다 액세스,리프레스 같이 넘기는 방법/ 재발급 api를 만들고

액세스 만료되면 리프레시 응답해주기.?

 

access token 은 발급 이후, 서버에 저장되지 않고 토큰 자체로 검증하며 사용자 권한을 인증함.

토큰이 만료되기 전까지 토큰을 획득한 사람은 누구나 접근 권한이 가능해진다. 따라서

보안을 위해 유효 주기가 짧아야 한다.

 

그렇다면 자동로그인 및 유지는? refresh token의 관할임.

refresh token은 한번 발급되면 유효기간이 더 길다. 대신, 접근에 대한 권한을 주는게 아니라,

'access토큰 재발급' 에만 관여 한다.

보통 refresh token은 로그인 성공시 발급되고, 저장소에서 저장, 관리.

사용자가 로그아웃하면 저장소에서 삭제하여 사용X도록 함.

 

액세토큰 재발급 과정.. 이건 프론트 입장인듯?

 

refresh token은 /accout/reissue uri (아마재발급 api엔드포인트 인듯?)접근에만 사용 가능하며

redis인메모리에서 사용자의 정보조회를 위해 payload에서 유저email을 얻는 용도로만 사용됨.

리프레시 토큰은 only 액세스토큰 재발급에만 사용되기 때문에,

토큰 검증 필터단계에서 조건이 추가된다. 토큰 type이 rtk인경우 request uri가 

/account/reissue인경우에만 허용한다.

 

jwtauthenticationFilter...를 수정해서 함.

 

 

 

 

액세스 토큰 재발급을 위해서는 redis인메모리 저장소를 사용한다.

key-value 형식으로 저장되는데,

email-RTK 형식으로 저장한다.

 

https://sol-devlog.tistory.com/22 이어서 작성하기..

'Docker' 카테고리의 다른 글

docker가 무엇이고 사용 방법은?  (0) 2024.05.01