외부 라이브러리 없이 JavaScript에서 JWT 토큰을 디코딩하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-01 00:26:28
원래의
795명이 탐색했습니다.

 How to Decode JWT Tokens in JavaScript Without External Libraries?

라이브러리 없이 JavaScript에서 JWT 토큰 디코딩

JWT(JSON 웹 토큰)의 페이로드 디코딩은 해당 클레임에 액세스하고 사용하는 데 필수적입니다. 프론트엔드 애플리케이션에서. 다음은 라이브러리 없이 JWT 토큰을 디코딩하는 두 가지 효율적인 방법입니다.

브라우저:

브라우저 환경에서는 다음 단계를 사용하여 JSON 페이로드를 추출할 수 있습니다.

  1. 점('.')을 사용하여 토큰을 세 부분으로 나눕니다.
  2. base64url(RFC 4648 §5)을 사용하여 페이로드가 포함된 두 번째 부분을 디코딩합니다.
  3. base64url로 인코딩된 페이로드를 유니코드 텍스트 문자열로 디코딩합니다.
  4. 유니코드 문자열을 JSON으로 디코딩 object.

JavaScript 코드:

<code class="javascript">function parseJwt(token) {
    const base64UrlPayload = token.split('.')[1];
    const base64Payload = base64UrlPayload.replace(/-/g, '+').replace(/_/g, '/');
    const jsonPayload = decodeURIComponent(window.atob(base64Payload).split('').map(c => {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
}</code>
로그인 후 복사

Node.js:

Node.js는 JWT를 디코딩하는 간단한 방법 페이로드:

  1. 점('.')을 구분 기호로 사용하여 토큰을 세 부분으로 분할합니다.
  2. base64를 사용하여 페이로드가 포함된 두 번째 부분을 디코딩합니다.
  3. 디코딩된 페이로드(Buffer 객체)를 JSON으로 변환 object.

JavaScript 코드:

<code class="javascript">function parseJwt(token) {
    const base64Payload = token.split('.')[1];
    const payloadBuffer = Buffer.from(base64Payload, 'base64');
    const payload = JSON.parse(payloadBuffer.toString());

    return payload;
}</code>
로그인 후 복사

참고: 이러한 메소드는 JWT 토큰의 서명을 검증하지 않습니다. 토큰의 진위성을 보장하기 위해 서명 검증용 라이브러리를 사용하는 것이 좋습니다.

위 내용은 외부 라이브러리 없이 JavaScript에서 JWT 토큰을 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!