我如何在 AngularJS 中使用 public 密钥解码 JWT?

How can i decode in AngularJS a JWT with a public key?

我正在构建一个 AngularJS 站点,该站点具有基于 JWT 的身份验证。当我成功登录应用程序时,后端 returns 我是一个 JWT,它存储在 localStorage 中。

我想在 JWT 声明中接收用户的角色,但我从本地存储中读取了令牌,因此可以简单地修改它(例如:使用 chrome 开发工具),恶意用户可以在 JWT 中放置假角色。

我如何使用 public 密钥在客户端验证令牌?。我假设 NodeJS 服务器使用 jwt-simple

使用相应的私钥生成令牌

提前致谢!

and the malicious user can put fake roles in the JWT

为什么这是个问题?恶意用户无法生成知道私钥的有效令牌 w/o,并且服务器无论如何都会在下一次请求时验证 JWT。

如果你想验证 JWT 以便正确显示,比如 GUI,你可以使用 JS 库,例如http://kjur.github.io/jsjws/.