@go1/webhook-verifier-js

You can use this library to verify the signature passed in the header to your webhook target endpoint.
For more information on signatures with Go1 Webhooks please see this guide.
Install
$ npm i @go1/webhook-verifier-js
Usage
If using a NodeJS framework like ExpressJS, with the req object in scope:
let signature = req.header('go1-signature');
let payload = req.body;
let secret = process.env.SHARED_SECRET;
You can then verify the signature like so:
import { verifySignature } from '@go1/webhook-verifier-js';
verifySignature(signature, payload, secret);
Or if you prefer not to have exceptions thrown you can also get a result back like so:
import { isSignatureVerified } from '@go1/webhook-verifier-js';
const { isValid, error } = isSignatureVerified(signature, payload, secret);
const { isValid, error } = isSignatureVerified(signature, payload, badSecret);
There is also some optional configuration you can set before calling verifySignature
or isSignatureVerified
:
import { configure as configureWebhookVerifier } from '@go1/webhook-verifier-js';
configureWebhookVerifier({
timestampToleranceInSeconds: 60,
signatureVersion: 'v1'
});
...
License
MIT License
Contributing
Please open an issue in github here and we will evaluate.