Как использовать (запрос-цель) в запросе HTTP? - PullRequest
0 голосов
/ 17 июня 2019

Когда я делаю запрос API с (request-target), он не работает. Что ж, документация по API говорит мне об этом. Кто-нибудь знает, как интегрировать (request-target) в этот запрос API?

'request-target' в заголовках работает, но '(request-target)' не работает (как это должно быть, если документация API верна).

var key = fs.readFileSync(path.resolve('./backend/ssl/ING/example_client_tls.key'));
  var cert = fs.readFileSync(path.resolve('./backend/ssl/ING/example_client_tls.cer'));

  var key2 = fs.readFileSync(path.resolve('./backend/ssl/ING/example_client_signing.pem'));
  var cert2 = fs.readFileSync(path.resolve('./backend/ssl/ING/example_client_signing.cer'));

    var options = {
      url: 'https://api.ing.com/oauth2/token',
      method: 'POST',
      agentOptions: {
        host: 'api.ing.com',
        cert: cert,
        key: key
      },
      headers: {
      'content-type': 'application/x-www-form-urlencoded',
      '(request-target)': 'post /oauth2/token',
       'date': Date.now(),
       'digest': 'SHA-256=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
      }
    };

    var req = request(options, function(req, res, next) {
      //console.log(res);
      console.log(res.statusCode);
    });

    httpSignature.sign(req, {
      key: key,
      keyId: 'SN=8296291D8E4661EF,CA=CN=example_client_signing,OU=IT Department,O=Sample Org',
      algorithm: 'rsa-sha256',
      headers: (['(request-target)', 'date', 'digest']),
      signature: key2
    });

    req.end();

RFC описывает это следующим образом в ссылке: https://tools.ietf.org/html/draft-cavage-http-signatures-10#section-2.3

...