wip-webhook-helper
Version:
This utility helps with webhook notifications from Kentico Kontent
26 lines (20 loc) • 901 B
text/typescript
import { createHmac } from 'crypto';
export interface ISignatureHelper {
isValidSignatureFromString(jsonPayload: string, secret: string, signature: string): boolean;
getHashFromString(jsonPayload: string, secret: string): string;
replaceLinebreaks(data: string): string;
}
export class SignatureHelper implements ISignatureHelper {
isValidSignatureFromString(jsonPayload: string, secret: string, signature: string): boolean {
return this.getHashFromString(jsonPayload, secret) === signature;
}
getHashFromString(jsonPayload: string, secret: string): string {
return createHmac('sha256', secret)
.update(jsonPayload, 'utf8')
.digest('base64');
}
replaceLinebreaks(data: string): string {
return data.replace(/[\r\n]+/gm, '\r\n');
}
}
export const signatureHelper = new SignatureHelper();