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

client app jwt token decode and verification security

我正在使用 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
});

你认为公开 public 密钥是个好主意,尽管 public 密钥是用于分发的?

public 密钥可以发布 'publicly' 没有任何危害。 public 密钥用于验证签名未被操纵,而私钥是应保密的密钥,因为它是对有效负载进行签名的密钥。因此,您的客户只需要知道有效载荷是否未被操纵。更多详情 here