Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
Traducir solicitud de Axios + crypto a cartero + cryptojs

Me gustaría hacer una solicitud a una API usando Postman. Hay un ejemplo en la documentación de la API para Javascript usando axios y crypto.

La documentación dice lo siguiente

Firmar una solicitud El valor de la X-App-Access-Sig es generado por un algoritmo HMAC sha256 utilizando una clave secreta (proporcionada en la generación del App Token) en los bytes obtenidos al concatenar la siguiente información:

  • Una marca de tiempo (valor del encabezado X-App-Access-Ts) tomado como una cadena
  • Un nombre de método HTTP en mayúsculas, por ejemplo, GET o POST
  • URI de la solicitud sin un nombre de host, comenzando con una barra inclinada e incluyendo todos los parámetros de consulta, por ejemplo, /resources/applicants/123?fields=info
  • Cuerpo de la solicitud, tomado exactamente como se enviará. Si no hay un cuerpo de solicitud, por ejemplo, para solicitudes GET, no lo incluya.

Ejemplo:

 const axios = require('axios'); const crypto = require('crypto'); var config = {}; config.baseURL= BASE_URL; axios.interceptors.request.use(createSignature, function (error) { return Promise.reject(error); }) function createSignature(config) { console.log('Creating a signature for the request...'); var ts = Math.floor(Date.now() / 1000); const signature = crypto.createHmac('sha256', SECRET_KEY); signature.update(ts + config.method.toUpperCase() + config.url); if (config.data instanceof FormData) { signature.update (config.data.getBuffer()); } else if (config.data) { signature.update (config.data); } config.headers['X-App-Access-Ts'] = ts; config.headers['X-App-Access-Sig'] = signature.digest('hex'); return config; }

Mi intento de implementar esto como un script de solicitud previa de cartero:

 var CryptoJs = require("crypto-js") console.log('Creating a signature for the request...'); const endpoint = pm.request.url.toString().split("{{BASE_URL}}").pop() var ts = Math.floor(Date.now() / 1000); const signature = CryptoJs.HmacSHA256(ts + pm.request.method.toUpperCase() + endpoint + pm.request.body, "{{SECRET_KEY}}") pm.request.headers.add({ key: 'X-App-Access-Ts', value: ts }) pm.request.headers.add({ key: 'X-App-Access-Sig', value: signature.toString(CryptoJs.enc.Hex) }) console.log(pm.request)

Pero me sale el error:

 { "description": "Request signature mismatch", "code": 401, "correlationId": "req-53db2067-b0ec-4ce8-b333-387b0b20a955", "errorCode": 4003, "errorName": "app-token-signature mismatch" }
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!