如何在客户端解码 JWT 令牌有效负载?

问题描述 投票:0回答:2

我使用 jwt 令牌进行身份验证,并希望读取客户端的有效负载信息。现在我正在做这样的事情:

var payload = JSON.parse(window.atob(token.split('.')[1])); 

有没有更好的方法在浏览器中使用 jwt 令牌?

javascript jwt
2个回答
40
投票

这个简单的解决方案返回原始令牌、标头和有效负载:

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)
}

40
投票

来自https://github.com/auth0/jwt-decode

下载 .build/jwt-decode.min.js 文件并包含在项目中。

<script src="js/jwt-decode.min.js"></script>

var token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuZXZlcl9nb25uYSI6eyJnaXZlX3lvdV91cCI6dHJ1ZSwibGV0X3lvdV9kb3duIjp0cnVlLCJydW5fYXJvdW5kIjp0cnVlLCJkZXNlcnRfeW91Ijp0cnVlLCJtYWtlX3lvdV9jcnkiOnRydWUsInNheV9nb29kYnllIjp0cnVlLCJ0ZWxsX2FfbGllIjp0cnVlLCJodXJ0X3lvdSI6dHJ1ZX19.6koygZP5DnSgnB0dz7o3hrdruZBSrb0LIHLJbO-rPKU'; // jwt token;
var decoded = jwt_decode(token);
console.log(decoded);
© www.soinside.com 2019 - 2024. All rights reserved.