JWT 토큰 방식은 무엇인가요?
🛠 JWT 토큰 방식이란?
JWT는 JSON Web Token의 약자로, 인증에 필요한 데이터를 암호화한 JSON으로 이루어진 토큰을 말한다.
기존의 세션 인증방식은 인증관련 정보를 세션 저장소라는 DB에 저장하여 서버가 과부하 되거나 서버를 확장하기가 어려웠다.
이러한 문제 때문에 서버자원을 절약하기 위해 사용자 인증에 필요한 정보를 토큰 자체에 담아두는 JWT를 사용하게 되었다.
토큰은 로그인 이후 서버가 만들어주는 문자열이고, 토큰 안에는 사용자의 로그인 정보와 서버의 서명이 들어있다.
JWT 토큰 방식 순서
- 사용자가 로그인을 하면 서버는 사용자에게 사용자 로그인 정보 및 서버의 서명이 들어간 토큰을 발급한다.
- 사용자는 토큰을 가지고 권한이 필요한 API 작업을 요청한다.
- 서버는 토큰의 유효성 검사를 통해 요청에 응답한다.
JWT 토큰 특징
👍 장점
- 서버에서 사용자 정보를 저장해둘 필요가 없어 서버 스케일링시 큰 문제가 없다.
- 별도의 I/O 작업 없는 빠른 인증 처리 가능
👎 단점
- 한번 발급된 토큰은 수정 및 폐기가 불가능하다.(클라이언트에게 있으니깐!)
- 그렇기 때문에 유효기간을 짧게 설정해주는것이 중요하다.
- 토큰의 길이가 늘어날 수록 네트워크 부하가 심해진다.