编辑:我找到了答案。滚动到这个问题的底部。
我在 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: …