coding
JWT
하루우울루
2025. 1. 21. 15:57
JWT(JSON Web Token)은 정보를 안전하게 전송하기 위한 개방형 표준으로 사용자 인증과 정보 교환에 사용되는 기술이다.
개방형 표준은 누구나 사용할 수 있도록 공개된 기술을 말한다.
JWT는 세 부분으로 구성되있는데, (.)으로 구분된다.
헤더(Header), 페이로드(Payload), 서명(signature)로 구분되어있다.
헤더는 토큰 타입과 사용된 해시 알고리즘 정보를 담고있고,
페이로드는 사용자 정보와 권한 등 실제 전달하고자 하는 데이터를 담고있고,
서명은 토큰의 유효성을 검증하기 위한 서명이 담겨있다.
JWT는 사용자가 로그인 할 시 검증이 성공하면 jwt토큰을 생성해 클라이언트에게 반환해준다.
이때 클라이언트는 토큰을 저장하는데 localstorage방식과 쿠키에 저장하는 방식이 있다.
서버측에서는 로그인 시 Claims를 통해 jwt페이로드에 사용자 정보를 저장한다.
이외 원하는 여러 정보들을 저장시킬 수 있다.
생성된 jwt토큰을 클라이언트에게 전달하면, 클라이언트는 이후 api 요청할 때 토큰을 Authorization 헤더에 넣어 보내면 서버는 받은 토큰을 추출하여 유효성을 검사할 수 있다.
클라이언트는 JWT를 단순히 저장하고 APi 요청 시에 전송하는 역할만 한다.