为什么我可以在jwt.io上轻松解码auth0 id_token?

Jus*_* B. 5 jwt auth0

好的,我正在开发一个Angular 2应用程序.我已经添加了auth0身份验证,但对我来说它非常不安全地处理会话.jwt令牌未加密并保存在localStorage中.声明对任何人都可见,它们可以轻松解码和显示.更不用说,Web Storage本身并不安全.

我选择JWT,因为后来我想用电子将这个网络应用程序转换为桌面应用程序,所以我不能使用cookie会话.我的用户将有其他信息,如角色,我不想在每次请求时在db中查找,这就是为什么我想将它们存储在jwt中.加密数据是有意义的,但auth0似乎没有提供该功能.

如果角色之类的声明存储在localStorage中不受保护,那么什么阻止我去firefox控制台并更改令牌,例如让自己成为管理员?

ped*_*ofb 6

如果角色之类的声明存储在localStorage中不受保护,那么什么阻止我去firefox控制台并更改令牌,例如让自己成为管理员?

由于JWT已签名,因此在验证期间将检测对内容或签名的任何更改

数字签名,这样的JWT令牌的第三部分 hhhhhh.ppppppp.ssssss是使用服务器私钥创建的,并且是您可以验证令牌发行者的身份以及它未被更改的方式

如果要隐藏有效负载,JWT规范允许使用加密(请参阅RFC中的 Json Web Encryption-JWE ).如果auth0不支持它,你在jwt.io中列出了很多库