
[ 로그인 ]

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


세션의 경우, 서버는 J세션 아이디를 비교해서 어? 있네? 하고 줬었다.
그러나 JWT는 회원정보 3을 요청하면(=로그인하면)
서버는 사용자의 정보를 바탕으로 JWT를 생성하는데, 이 JWT는 서버의 개인키(비밀키)로 서명!
서버는 이 토큰을 클라이언트에게 전송하고,
클라이언트는 이후의 요청에서 이 토큰을 Authorization 헤더에 포함시켜 서버에 전송!
그 이후, 요청을 받을 때마다 서버가 토큰 검증을 함 (stateless네?)
서버의 공개키를 사용하여 토큰이 서버의 개인키로 서명되었는지 검증하고, 풀리면 응답한다.
토큰 검증을 프라이빗 키로 검증만 하고,
[ 세션 기반과 다른 점 ]
로그인하면 SET COOKIE에다가 JSESSIONID를 주고, 브라우저는 쿠키 영역에 세션을 저장 회원정보 요청할 때, 세션을 들고 갔다. JWT는 검증이 안 되면 응답을 안해줌. JWT를 같이 가지고 가야함. (직접 들고가야 함!)

토큰 검증 실패하면 응답 X

토큰 검증 성공하면 응답 O
JWT는 주로 사용자 인증 및 정보 교환에 사용된다.
Share article