客户端应用 jwt 令牌解码和验证安全

Posted

技术标签:

【中文标题】客户端应用 jwt 令牌解码和验证安全【英文标题】:client app jwt token decode and verification security 【发布时间】:2018-05-18 19:21:24 【问题描述】:

我正在使用 JWT 使用 RS256 private/public 密钥进行 API 身份验证。

在我的客户端,我使用的是 Vuejs/Angular/React,我很想使用 JsonWebToken 对过期日期和颁发者进行客户端 JWT 令牌验证:

var cert = fs.readFileSync('public.pem');  // get public key
jwt.verify(token, cert,  audience: 'urn:foo', issuer: 'urn:issuer' , function(err, decoded) 
  // if issuer mismatch, err == invalid issuer
);

您认为公开公钥是否是个好主意,尽管公钥是用来分发的?

【问题讨论】:

是的,您可以与共享数据的人共享公钥以读取它 【参考方案1】:

公钥可以“公开”发布而不会造成任何损害。公钥用于验证签名是否未被操纵,而私钥是应保密的密钥,因为它是对有效负载进行签名的密钥。因此,您的客户只需要知道有效负载是否未被操纵。更多详情here

【讨论】:

以上是关于客户端应用 jwt 令牌解码和验证安全的主要内容,如果未能解决你的问题,请参考以下文章

JWT 令牌签名验证 javascript

JWT - 刷新令牌和安全改进

存储用于编码/解码令牌数据的 JWT 密钥的安全方式

这种基于 JWT 的身份验证方法安全吗?

JWT 未解码“JWT 格式错误”-Node Angular

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