
JWT 는 (헤더, 페이로드, 시그니처 )으로 구분하여 데이터 전달.
header는 JWT임을 명시, 사용된 암호화 알고리즘
Payload 는 정보(username, role값, 발급일자 등등…)
Signature는 암호화 알고리즘 (Base64(Header) + Base64(Payload) + 암호화 키)
JWT특징은 내부정보를 단순 Base64로 인코딩 하기 때문에 외부에서 쉽게 디코딩 할 수 있다.
외부에서 열람해도 되는 정보를 담아야한다. 비밀번호값 담게 되면 절대 안됨.
토큰 자체의 발급처만 확인하기 위해 사용!!!(우리 서버에서 발급한건지 아닌지)
즉, 발급처에 대한 보장및 검증은 확실하게 해야하는 경우에 사용.
Payload값은 외부에서 볼 수 있음.
하지만 외부에서 Payload 값을 변경하더라도 시그니처에서 암호화된 알고리즘을 통해 밝혀보면, 외부에서 변경된 payload의 데이터기 시그니처에서 암호화된 payload 정보와 다르기 때문에 해당 토큰이 반려 됨.
