JWT Token

송나은·2021년 4월 15일
0

[INSOMENIA]

목록 보기
6/18

JWT 란

Json Web Tokem의 약어. 회원 인증정보(token)을 json형식으로 클라이언트가 가지고 있고, 서버에 요청할 때 토큰을 함께 보내어 토큰이 유효한지 판단한다.

기존에 사용하던 Session에서 jwt으로 넘어오는 이유

  1. session에 저장하는 것은 서버의 저장공간을 사용하게 되므로 서버의 부하
  2. 서버간 세션 동기화 문제
    Session DB를 만들어 관리하는 것은 매우 비효율적이다.

Token 예)

Header, Payload, Signature

eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTg0NjM0NTUsInVzZXJfaWQiOjEsInVpZCI6IjE5M2E4YmE5LWY0MTgtNGZlNC05N2RkLWQzODkyZDEwZDI0NyIsInJ1aWQiOiI5NGZhNTVjMS0wOTFlLTRkNjItOWIyMy0wNDY5ZGI3YzBjZjQifQ.zhLObmwwrhkcYvkda9FT_ye8FMYZJfz63aJViAWKsio

생성된 토큰은 HTTP 통신을 할 때 Authorization이라는 key의 value로 사용된다. value앞에 Bearer이 앞에 붙여진다.
{"Authorization": "Bearer {token}"}

Payload는 암호화 된 것이 아니라 base64로 인코딩된 것이다. 디코딩하면 데이터를 볼 수 있으므로 토큰에 중요 ㄷ에ㅣ터는 넣지 않아야 한다.

JWT는 한 번 만들어지면 제어가 불가능하다.

토큰을 임의로 삭제할 수가 없으므로 payload에 만료시간을 넣어주어야 한다.

profile
그때그때 공부한 내용과 생각을 기록하는 블로그입니다.

0개의 댓글