JWT Access Token, Refresh Token

Robin·2022년 12월 5일
0

개발상식

목록 보기
11/13

About JWT

${encodedHeader}.${encodedPayload}.${signature}
  • 메타 데이터 (data about the token)
  • 서명 값을 만드는 알고리즘, 토큰 타입

Payload

  • 내용, 즉 토큰에 담고싶은 JSON Object: 주로 유저 관련(서버에서 첨부한 사용자 권한 정보와 데이터)
  • 비밀번호와 같은 민감한 정보는 담으면 안됨

Signature

  • Header, Payload를 encoded한 후 -> Secret key로 전자서명

전반 프로세스

  • In authentication, when the user successfully logs in using their credentials, a JSON Web Token will be returned.

  • Whenever the user wants to access a protected route or resource, the user agent should send the JWT, typically in the Authorization header using the Bearer schema: Authorization: Bearer <token>

Refresh Token

JWT 단점

  1. 용량이 크다.
  • 내용물이 들어 있으므로 랜덤한 토큰을 사용할 때와 비교해서 용량이 클 수밖에 없다.
  • 매 요청 시 토큰이 오고 가서 데이터양이 증가
  1. 통제권이 없다.
  • 세션과 같이 우리가 임의로 종료 시켜버릴 수 없다. (ex) 토큰이 탈취되었을때 강제 종료 시킬 수도 없음
  • 이에 실서비스에서는 JWT만으로 인가를 구현하진 않는다.
  • 이에 만료시간을 짧게 잡아서 다시금 발급해주는 Refresh token 방식 진행
    : 중간에 Access token이 탈취당해도 수명이 짧으니 오래 쓰지 못하게 됨, 그리고 임의로 종료를 원한다면 Refresh token을 DB에서 지워버리면 되는 것

참고 자료

profile
Always testing, sometimes dog walking

0개의 댓글

관련 채용 정보