基于公钥和私钥创建 JWT 令牌

时间:2021-07-07 19:41:15

标签: node.js jwt node-jose

我使用该服务的 API。 该示例表明您需要使用 .pem 文件,尽管它们本身只发布公钥和私钥 RSA_2048 密钥。 有没有办法使用 https://github.com/cisco/node-jose 库并根据这些键生成 JWT 令牌? 在这个例子中,我只看到这个:

var jose = require('node-jose');
var fs = require('fs');

var key = fs.readFileSync(require.resolve('private.pem'));

var serviceAccountId = 'ajepg0mjt06siua65usm';
var keyId = 'lfkoe35hsk58aks301nl';
var now = Math.floor(new Date().getTime() / 1000);

var payload = { aud: "https://iam.api.cloud.yandex.net/iam/v1/tokens",
                iss: serviceAccountId,
                iat: now,
                exp: now + 3600 };

jose.JWK.asKey(key, 'pem', { kid: keyId, alg: 'PS256' })
    .then(function(result) {
        jose.JWS.createSign({ format: 'compact' }, result)
            .update(JSON.stringify(payload))
            .final()
            .then(function(result) {
                // result
            });
    });

我在这里问,因为堆栈上的答案更快:)

0 个答案:

没有答案