Javascript 如何在客户端解码JWT令牌负载?
我正在使用jwt令牌进行身份验证,并希望在客户端读取有效负载信息。现在我正在做这样的事情:Javascript 如何在客户端解码JWT令牌负载?,javascript,jwt,Javascript,Jwt,我正在使用jwt令牌进行身份验证,并希望在客户端读取有效负载信息。现在我正在做这样的事情: var payload = JSON.parse(window.atob(token.split('.')[1])); 是否有更好的方法在浏览器中使用jwt令牌 来自 下载.build/jwt-decode.min.js文件并包含在项目中 <script src="js/jwt-decode.min.js"></script> var token = 'e
var payload = JSON.parse(window.atob(token.split('.')[1]));
是否有更好的方法在浏览器中使用jwt令牌 来自
下载.build/jwt-decode.min.js文件并包含在项目中
<script src="js/jwt-decode.min.js"></script>
var token = 'eyJ0eXAiOo876jgJ96...'; // jwt token;
var decoded = jwt_decode(token);
console.log(decoded);
变量标记='eyJ0eXAiOo876jgJ96…';//jwt令牌;
var decoded=jwt_decode(令牌);
控制台日志(已解码);
此简单解决方案返回原始令牌、标头和有效负载:
function jwtDecode(t) {
let token = {};
token.raw = t;
token.header = JSON.parse(window.atob(t.split('.')[0]));
token.payload = JSON.parse(window.atob(t.split('.')[1]));
return (token)
}
感谢@robertklep我之前查看了这些文件,但忽略了.build文件夹。我在你的链接后发布了我在下面使用的解决方案。你能解释一下为什么要这样做吗?我需要在前端阅读的有效负载中传递了信息。我当时需要在几个字段中显示一些基本的东西,如名字和电子邮件地址。@AdamReis如何只显示一次?只需先拆分字符串,例如
const[header,payload]=t.split('.')代码>然后您可以转换并解析每个部分。必须分开两次是多余的。我之前的评论并不完全正确。你仍然需要验证令牌,否则你只是盲目地信任服务器。@sean你在说什么?这就是JWT的全部要点,客户端不必验证任何东西。解析JWT客户端的有用性更好。