
const crypto = require('crypto');
function generateHmac(talentspace, email, timestamp, secretKey) {
// Create the HMAC
const hmacBody = [talentspace, email, timestamp, secretKey].join(';');
return crypto.createHmac('md5', secretKey)
.update(hmacBody)
.digest('hex');
}
function validateHmac(request, secretKey) {
// Extract the necessary parts from the request
const { talentspace, email, timestamp, hmac } = request;
// Recreate the HMAC
const generatedHmac = generateHmac(talentspace, email, timestamp, secretKey)
// Compare and return the validation result
return hmac === generatedHmac;
}
// Example usage
const request = {
talentspace: 'exampleTalentspace',
email: 'example@email.com',
timestamp: '2023-12-14T07:12:17+00:00',
hmac: '259429c3df5c45d8f0e50f914f9f9380'
};
const secretKey = 'exampleHmacFromRequest'; // Replace with your actual secret key
const isValid = validateHmac(request, secretKey);
console.log('Is HMAC valid?', isValid);