小编Jim*_*den的帖子

使用 Google Cloud 密钥管理服务签署 JSON Web 令牌

编辑:我找到了答案。滚动到这个问题的底部。

我在 NodeJS 身份验证服务器上工作,我想使用 google 签名对 JSON Web 令牌 (JWT) 进行签名。

我正在使用 Google Cloud Key Management Service (KMS) 并创建了一个密钥环和一个非对称签名密钥。

这是我获取签名的代码:

signatureObject = await client.asymmetricSign({ name, digest })

signature = signatureObject["0"].signature
Run Code Online (Sandbox Code Playgroud)

我的 Google 签名对象如下所示:

在此处输入图片说明

我的问题:如何使用 Google 签名签署 JWT?

或者换句话说,我如何将 Google 签名连接到 JWT 的 (header.payload)?

JWT 应该如下所示:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ. (GoogleSignature)
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码:

签名:

async function sign(message, name) {
  hashedMessage = crypto.createHash('sha256').update(message).digest('base64');
  digest = { 'sha256': hashedMessage }

  signatureObject = await client.asymmetricSign({ name, digest }).catch((err) => console.log(err))
  signature = signatureObject["0"].signature
  signJWT(signature)
}
Run Code Online (Sandbox Code Playgroud)

创建 JWT: …

node.js jwt google-cloud-platform google-cloud-kms

5
推荐指数
1
解决办法
1590
查看次数