토큰 기반 인증 방식
state를 토큰에 몰아넣고
서버는 statless 하게 가자.
토큰에 유저의 상태값이 다 들어있다.
토큰으로 유저가 유효한지 유효하지 않은지 판단한다.
토큰 로그인 방식 순서
JWT란?
JWT JSON WEB TOKEN 을 의미
헤더, 페이로드, 서명으로 이루어져 있으며 JSON객체로 인코딩되며 메세지 인증, 암호화에 사용된다.
Header
-- 토큰 유형과 서명 알고리즘, base64URL로 인코딩 된다
Payload
-- 데터, 토큰 발급자, 토큰 유효기간, base64URL로 인코딩 된다.
Signature
-- 인코딩된 header + payload + 비밀키를 기반으로 헤더에 명시된 알고리즘으로 다시 생성한 서명값
토큰기반 인증 방식 (Access 토큰, refresh 토큰)
토큰기반인증방식을 구현할 때는 refresh 토큰과 access토큰 두 개를 기반으로 구현
access 토큰의 수명은 짧게, refresh 토큰의 수명은 길게 한다.
refresh 토큰은 access 토큰이 만료되었을 때 다시 access 토큰을 얻기 위해 사용되는 토큰.
access 토큰이 만료됬을 때마다 인증에 관한 비용이 줄어들게 된다.
로그인을 하게 되면 access 토큰과 refresh 토큰 두 개를 얻습니다.
access 토큰이 만료가 되거나 사용자가 새로고침을 할 때 refresh 토큰을 기반으로 새로운 access token을 얻는다.