首頁 > web前端 > js教程 > 主體

如何在沒有函式庫的情況下在 JavaScript 中解碼 JWT 令牌?

Barbara Streisand
發布: 2024-10-29 18:30:28
原創
897 人瀏覽過

How to Decode JWT Tokens in JavaScript Without Libraries?

在沒有庫的情況下解碼JavaScript 中的JWT 令牌

可以在不依賴外部庫的情況下解碼JavaScript Web 令牌(JWT) 的有效負載。這可以更好地控制解碼過程,並實現與前端應用程式的無縫整合。

解碼過程

JWT 格式由三個由句點分隔的段組成,第二段包含有效負載。解碼有效負載:

1。提取有效負載段:

const payloadSegment = token.split('.')[1];
登入後複製

2.解碼有效負載(瀏覽器)

對於瀏覽器,有效負載使用base64url 進行編碼,這與常規的base64 不同。解碼如下:

const payload = decodeURIComponent(window.atob(payloadSegment).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
登入後複製

3.解碼有效負載 (Node.js)

在 Node.js 中,有效負載不使用 base64url 進行編碼。使用Buffer 模組對其進行解碼:

const payload = Buffer.from(payloadSegment, 'base64').toString();
登入後複製

4.解析有效負載JSON

將解碼後的有效負載字串轉換為JSON:

const payloadObject = JSON.parse(payload);
登入後複製

範例:

給定令牌:xxxxxxxxxx。 XXXXXXX.xxxxxxxx,解碼後的有效負載類似於:

{exp: 10012016, name: "john doe", scope: ["admin"]}
登入後複製

注意:

此方法僅提取有效負載而不驗證令牌簽名。令牌可能在解碼之前已被竄改。

以上是如何在沒有函式庫的情況下在 JavaScript 中解碼 JWT 令牌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!