Bagaimana untuk Menyahkod Token JWT dalam JavaScript Tanpa Perpustakaan Luaran?

Patricia Arquette
Lepaskan: 2024-11-01 00:26:28
asal
858 orang telah melayarinya

 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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan