const crypto = require('crypto');
const secret = 'YOUR_TOKEN'; // Secret Token

// Example payload
const payload = {
  "resources": [
    "/devices",
    "/device/{device_id}/power"
  ],
  "device_id": "65cafef7-49f0-43f0-ac8f-60b5fd51c3a6"
};

// 1. Serialize payload
const payloadString = JSON.stringify(payload);

// 2. Calculate signature
const calculatedSignature = crypto
  .createHmac('sha256', secret)
  .update(payloadString)
  .digest('hex');

// 3. Compare signature
const headerSignature =
  'sha256=4de407c58557959df6631bacca8a364fb2e89f632b12bb29a6bcffe22dc00f9c'
  .replace('sha256=', '');

if (calculatedSignature === headerSignature) {
  console.log('Verification succeeded');
} else {
  console.log('Verification failed');
}