Json Web Token으로,
유저를 인증하고 식별하기 위한 토큰 기반 인증을 뜻한다.
세션을 사용할 경우 쿠키 등을 통해 사용자를 식별하고 서버에 세션을 저장했지만,
토큰을 클라이언트에 저장하고 http 헤더에 토큰을 첨부하는 것만으로도
단순하게 데이터를 요청하고 응답받을 수 있다.
구조는 header, payload, signature로 이루어진다.
과정은
(jwt를 발급전까지의 과정- 로그인 전)
1. 사용자가 아이디와 비빌번호 혹은 소셜 로그인을 이용하여 서버에 로그인 요청을 보낸다.
2. 서버는 비밀키를 사용해 json 객체를 암호화한 jwt 토큰을 발급한다.
3. jwt를 헤더에 담아 클라이언트에 보낸다.
(로그인 이후)
1. 클라이언트는 jwt를 로컬에 저장
2. api 호출을 할 때마다 header에 jwt를 실어 보낸다.
3. 서버는 헤더를 확인하여 사용자가 신뢰할만한지 체크,
인증이 되면 api에 대한 응답을 보낸다.
헤더에 넣어서 보내는 경우는 http가 매번 인증 과정을 거쳐야 하기 때문에 이다.