我将 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
});
});
我在这里问,因为堆栈上的答案更快:)