Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menyahkod Token JWT dalam JavaScript Tanpa Perpustakaan Luaran?

Bagaimana untuk Menyahkod Token JWT dalam JavaScript Tanpa Perpustakaan Luaran?

Patricia Arquette
Patricia Arquetteasal
2024-11-01 00:26:28875semak imbas

 How to Decode JWT Tokens in JavaScript Without External Libraries?

Menyahkod Token JWT dalam JavaScript Tanpa Perpustakaan

Menyahkod muatan JWT (JSON Web Token) adalah penting untuk mengakses dan menggunakan tuntutannya dalam aplikasi bahagian hadapan. Di bawah ialah dua kaedah yang cekap untuk menyahkod token JWT tanpa 借助 perpustakaan:

Pelayar:

Dalam persekitaran penyemak imbas, kami boleh menggunakan langkah berikut untuk mengekstrak muatan JSON:

  1. Pisah token kepada tiga bahagian menggunakan titik ('.') sebagai pembatas.
  2. Nyahkod bahagian kedua, yang mengandungi muatan, menggunakan base64url (RFC 4648 §5 ).
  3. Nyahkodkan muatan berkod base64url ke dalam rentetan teks Unikod.
  4. Nyahkod rentetan Unikod sebagai objek JSON.

Kod 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 menawarkan kaedah mudah untuk menyahkod muatan JWT:

  1. Split token kepada tiga bahagian menggunakan titik ('.') sebagai pembatas.
  2. Nyahkod bahagian kedua, yang mengandungi muatan, menggunakan base64.
  3. Tukar muatan yang dinyahkod, iaitu Penampan objek, ke dalam objek JSON.

Kod 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>

Nota: Kaedah ini tidak mengesahkan tandatangan daripada token JWT. Anda amat disyorkan untuk menggunakan perpustakaan untuk pengesahan tandatangan bagi memastikan ketulenan token.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Token JWT dalam JavaScript Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn