Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menyahkod Token JWT Secara Manual dalam JavaScript?

Bagaimana untuk Menyahkod Token JWT Secara Manual dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-10-29 08:00:30
asal
520 orang telah melayarinya

How to Decode JWT Tokens Manually in JavaScript?

Rancang Kaedah untuk Menyahkod Token JWT dalam JavaScript

Menyahkod token JWT tanpa menggunakan perpustakaan adalah mungkin dalam JavaScript. Ini boleh dicapai dengan mengekstrak muatan secara manual daripada token.

Langkah untuk Pengekstrakan Muatan:

1. Penyahkodan Base64:

Pisah token kepada tiga bahagian (pengepala, muatan, tandatangan) menggunakan tanda '.' watak. Nyahkod bahagian kedua (muatan) menggunakan pengekodan Base64URL, yang menggantikan ' ' dan '/' dengan '-' dan '_' masing-masing.

2. Penggantian Teks Unikod:

Muatan dinyahkod ialah jujukan teks Unikod. Gantikan mana-mana aksara yang tidak boleh dicetak (% simbol) dengan kod ASCII yang sepadan (cth., untuk ruang).

3. Penghuraian JSON:

Akhir sekali, huraikan teks yang diganti sebagai JSON untuk mendapatkan objek muatan.

Pelaksanaan:

Pelayar :

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

Node.js:

<code class="javascript">function parseJwt(token) {
    return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
}</code>
Salin selepas log masuk

Nota: Menyahkod muatan tidak mengesahkan tandatangan token. Ia menganggap token itu tidak diusik.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Token JWT Secara Manual dalam JavaScript?. 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