>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 JWT 토큰을 수동으로 디코딩하는 방법은 무엇입니까?

JavaScript에서 JWT 토큰을 수동으로 디코딩하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-29 08:00:30552검색

How to Decode JWT Tokens Manually in JavaScript?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.