JWT 토큰을 JavaScript로 디코딩하는 방법 고안
JWT 토큰을 JavaScript에서 라이브러리를 활용하지 않고 디코딩하는 것이 가능합니다. 이는 토큰에서 페이로드를 수동으로 추출하여 수행할 수 있습니다.
페이로드 추출 단계:
1. Base64 디코딩:
'.'을 사용하여 토큰을 세 부분(헤더, 페이로드, 서명)으로 분할합니다. 성격. '' 및 '/'를 각각 '-' 및 '_'로 바꾸는 Base64URL 인코딩을 사용하여 두 번째 부분(페이로드)을 디코딩합니다.
2. 유니코드 텍스트 대체:
디코딩된 페이로드는 유니코드 텍스트 시퀀스입니다. 인쇄할 수 없는 문자(% 기호)를 해당 ASCII 코드(예: 공백)로 바꿉니다.
3. JSON 구문 분석:
마지막으로 대체된 텍스트를 JSON으로 구문 분석하여 페이로드 객체를 얻습니다.
구현:
브라우저 :
<code class="javascript">function parseJwt(token) { var base64Url = token.split('.')[1]; var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); return JSON.parse(jsonPayload); }</code>
Node.js:
<code class="javascript">function parseJwt(token) { return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); }</code>
참고: 페이로드를 디코딩해도 토큰 서명의 유효성이 검사되지 않습니다. 토큰이 변조되지 않았다고 가정합니다.
위 내용은 JavaScript에서 JWT 토큰을 수동으로 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!