Создать токен JWT на основе открытого и закрытого ключа

Я использую 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 ответов

Другие вопросы по тегам