Generate HMAC Signature
Step-by-step guide to generate HMAC signatures
Reading time: 1 minute
Generate HMAC Signature
Steps
1. Create the string to sign
Combine the following elements in this order:
METHOD + PATH + QUERY_STRING + TIMESTAMP + BODY
2. Calculate HMAC-SHA256
Use your hmacSecret key to calculate the signature:
Calculate Signaturejavascript
const crypto = require('crypto');
const signature = crypto
.createHmac('sha256', hmacSecret)
.update(stringToSign)
.digest('hex');3. Add the header
Add the signature to the request header:
X-Awal-Signature-256: sha256={signature}
Complete JavaScript Example
Complete Examplejavascript
123456789101112131415161718192021222324252627282930313233343536const crypto = require('crypto'); function generateSignature(method, path, queryString, timestamp, body, hmacSecret) { // Build the string to sign const stringToSign = `${method}${path}${queryString}${timestamp}${body}`; // Calculate the signature const signature = crypto .createHmac('sha256', hmacSecret) .update(stringToSign) .digest('hex'); return `sha256=${signature}`; } // Usage example const method = 'POST'; const path = '/w/message/text'; const queryString = '?phone_number_id=123'; const timestamp = Math.floor(Date.now() / 1000); const body = JSON.stringify({ phone: '96650000000', body: 'Hello' }); const hmacSecret = 'your-hmac-secret'; const signature = generateSignature( method, path, queryString, timestamp, body, hmacSecret ); console.log('Signature:', signature);
Related
ā Back to Authentication
View Guide