제이슨 웹 토큰이란?

coding S's avatar
Apr 19, 2024
제이슨 웹 토큰이란?

[ 로그인 ]

notion image
클라이언트가 로그인을 하면 서버에게 제이슨 웹 토큰(JWT)를 받아오는데, 이 토큰 안에 ID, USERNAME 같은 정보가 함께 들어있다.
 

[ 회원 정보 요청 ]

notion image
notion image
세션의 경우, 서버는 J세션 아이디를 비교해서 어? 있네? 하고 줬었다. 그러나 JWT는 회원정보 3을 요청하면(=로그인하면) 서버는 사용자의 정보를 바탕으로 JWT를 생성하는데, 이 JWT는 서버의 개인키(비밀키)로 서명! 서버는 이 토큰을 클라이언트에게 전송하고, 클라이언트는 이후의 요청에서 이 토큰을 Authorization 헤더에 포함시켜 서버에 전송! 그 이후, 요청을 받을 때마다 서버가 토큰 검증을 함 (stateless네?) 서버의 공개키를 사용하여 토큰이 서버의 개인키로 서명되었는지 검증하고, 풀리면 응답한다. 토큰 검증을 프라이빗 키로 검증만 하고,
 

[ 세션 기반과 다른 점 ]

로그인하면 SET COOKIE에다가 JSESSIONID를 주고, 브라우저는 쿠키 영역에 세션을 저장 회원정보 요청할 때, 세션을 들고 갔다. JWT는 검증이 안 되면 응답을 안해줌. JWT를 같이 가지고 가야함. (직접 들고가야 함!)
notion image
💡
토큰 검증 실패하면 응답 X
 

notion image
💡
토큰 검증 성공하면 응답 O
 

 
💡
JWT는 주로 사용자 인증 및 정보 교환에 사용된다.
Share article

codingb