如何使用JavaScript解码JWT的有效负载?没有图书馆.所以令牌只返回一个有效负载对象,可以被我的前端应用程序使用.

示例令牌:xxxxxxxxx.XXXXXXXX.xxxxxxxx

结果就是有效载荷:

{exp: 10012016 name: john doe, scope:['admin']}

推荐答案

使用Unicode文本JWT解析器函数:

function parseJwt (token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
    var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
};

Javascript相关问答推荐

容器如何更改默认插槽中子项的显示?

ReactJS中的material UI自动完成类别

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

在React中获取数据后,如何避免不必要的组件闪现1秒?

更改JSON中使用AJAX返回的图像的路径

分层树视图

使用Promise.All并发解决时,每个promise 的线性时间增加?

闭包是将值复制到内存的另一个位置吗?

获取';无法解决导入和导入";slick-carousel/slick/slick-theme.css";';错误

<;img>;标记无法呈现图像

是否可以将Select()和Sample()与Mongoose结合使用?

将多个文本框中的输出合并到一个文本框中

我怎样才能得到一个数组的名字在另一个数组?

如何在下一个js中更改每个标记APEXCHARTS图表的 colored颜色

需要RTK-在ReactJS中查询多个组件的Mutations 数据

正则表达式以确定给定文本是否不只包含邮箱字符串

Reaction-在同一页内滚动导航(下拉菜单)

如何在不将整个文件加载到内存的情况下,在Node.js中实现Unix粘贴命令?

JavaScript -如何跳过某个字符(S)来打乱字符串中的字符

:host::ng-Deep不将样式应用于material 复选框