Я реализую поток токенов-носителей JWT на NodeJS, и вот база знаний, которую я пробую, https://help.salesforce.com/articleView?id=remoteaccess_oauth_jwt_flow.htm&type=5
Вы можете увидеть пример кода Java для создания токена-носителя JWT.Он извлекает закрытый ключ из хранилища ключей java и подписывает заголовок JWT и объект утверждений JWT.
//Load the private key from a keystore
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("./path/to/keystore.jks"), "keystorepassword".toCharArray());
PrivateKey privateKey = (PrivateKey) keystore.getKey("certalias", "privatekeypassword".toCharArray());
//Sign the JWT Header + "." + JWT Claims Object
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(token.toString().getBytes("UTF-8"));
String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
Я пытаюсь сделать то же самое на NodeJS, используя node-keytool
для извлечения закрытого ключа и jwt-js
для токена.Похоже, node-keytool
не может извлечь закрытый ключ из хранилища ключей.Можете ли вы помочь мне, как реализовать вышеуказанный код на NodeJS?