Я создаю приложение, которое использует API от банковских провайдеров. Там я должен отправить подпись в запросе, но я не знаю, как это сделать в Node JS.
Я нашел пакет npm с именем http-auth, но он не поддерживает этот тип авторизации.
В банке есть документация о том, как использовать их API, но заголовки показаны как используемые в Linux.
Показан пример кода банковского провайдера:
POST /oauth2/token
Host: api.ing.com
Date: Sun, 05 Jan 2014 21:31:40 GMT
Content-Type: application/x-www-form-urlencoded
Digest: SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
Authorization: Signature keyId="[CLIENT_ID or EIDAS_SERIAL_CA_IDENTIFIER]",algorithm="rsa-sha256", headers="(request-target) date digest", signature="[SIGNATURE_VALUE]"
grant_type=client_credentials&scope=greetings%3Aview
Моя (грустная) попытка:
request({
url: apiURL,
agentOptions: {
key: fs.readFileSync(path.resolve('./backend/ssl/example_client_signing.key')),
cert: fs.readFileSync(path.resolve('./backend/ssl/example_client_signing.cer'))
},
headers:
{
'content-type': 'application/x-www-form-urlencoded',
'date': 'Wed, 14 Feb 2018 11:15:00 GMT',
'digest': 'SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=',
'Authorization': 'Signature keyId="SN=499602D2,CA=C=NL,ST=Amsterdam,L=Amsterdam,O=ING,OU=ING,CN=AppCertificateMeansAPI",algorithm="rsa-sha256", headers="(request-target) date digest"'
}
Так кто-нибудь знает, как правильно сделать этот запрос?