首页 > 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学习者快速成长!