본문 바로가기
Server/Node.js

JSON Web Token(JWT)

by print_soo 2023. 9. 5.

Token이란?

: 암호화된 긴 문자열

 

JSON Web Token(JWT)이란?

 

세션 데이터를 서버에 저장하지 않고
마이페이지를 열람할 수 있는 열쇠(토큰)을 사용자에게 주는 것

 

<작동방식>

 

1.  유저가 로그인을 하면 서버에서 토큰을 브라우저에게 전송한다.

 

 

 

2. 토큰을 받은 브라우저는 토큰을 쿠키 또는 Local Storage에 저장한다.

 

 

 

3. 이후 마이페이지와 같은 로그인 후 사용할 수 있는 기능을 수행하려고 하면 요청과 함께 헤더에 토큰을 포함해서 보낸다.

 

 

 

4. 서버에서는 해당 토큰이 유효한지 검사를 하고 유효하면 마이페이지 html을 전달한다.

 

 

 

장점

  • 데이터 위변조를 방지한다.
  • 인증하기 위한 별도의 저장소가 없어도 된다
  • 확장성이 우수하다
  • 토큰 기반으로 다른 로그인 시스템에 접근 및 권한 공유가 가능하다.(쿠키와의 차이)
  • 모바일에서도 잘 작동한다. (세션은 모바일에서 작동이 안된다.)

 

 

단점

  • 세션과는 다르게 토큰의 길이가 길어, 인증 요청이 많아질수록 네트워크 부하가 심해진다.
  • 토큰을 탈취당하면 대처가 매우 어럽다.