JWT 令牌解码

Posted

技术标签:

【中文标题】JWT 令牌解码【英文标题】:JWT token decode 【发布时间】:2018-10-05 16:45:52 【问题描述】:

我正在创建一个基于网络的移动应用程序。我担心的是,即使没有密钥,也可以从 JWT WEBSITE 解码 JWT 令牌的有效负载。它显示 Invalid Signature 错误,但仍显示令牌中包含的有效负载。 我想知道在这种情况下使用 JWT 令牌有多安全。 这是我的 API 生成的示例令牌 - eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJKb2UiLCJuYW1lIjoidnl3diJ9.8xeKufZ-U5ksijK2fCeU7gnZ5Xg-eUTqlZ2SdxrslklHNm519xYx-0DkhEyNe2NRhMUNfyhNsnkpZWim9lqi5w

可能是我对 JWT 的了解不够,有什么解决办法吗?

【问题讨论】:

If you can decode JWT how are they secure?的可能重复 JWT 可以签名(JWS - 您在问题中提到的内容)、加密(JWE - 请参阅RFC7516)或两者(签名然后加密 - 仅按此顺序)。如果您需要 JWE 对 php 的支持,可以查看 github.com/web-token 【参考方案1】:

来自jwt.io 页面:

什么时候应该使用 JSON 网络令牌?

以下是 JSON Web 令牌有用的一些场景:

身份验证:

这是使用 JWT 最常见的场景。用户登录后,每个后续请求都将包含 JWT,允许用户访问路由、服务和资源 允许使用该令牌。单点登录是一项广泛应用的功能 现在使用 JWT,因为它的开销小并且能够 轻松跨域使用。

信息交流:

JSON Web 令牌是在各方之间安全传输信息的好方法。因为 JWT 可以 签名——例如,使用公钥/私钥对——你可以确定 发件人就是他们所说的人。此外,由于签名是 使用标头和有效负载计算,您还可以验证 内容未被篡改。

所以它是安全的。您只需要使用密钥验证令牌,并且永远不要发送敏感数据(因为它可以被解密)。

【讨论】:

以上是关于JWT 令牌解码的主要内容,如果未能解决你的问题,请参考以下文章

在没有秘密的情况下解码 JWT 令牌

cakephp 中的 JWT 令牌解码

尝试解码 Jwt 令牌时出现“尝试解码 Jwt 时发生错误:无法检索远程 JWK 集:”错误

在节点中解码 Jwt 令牌 - 没有库

使用带有 RSA 的 JWT 解码 Id 令牌

如何从节点 api 中的获取请求中解码 JWT 令牌