UNPKG

@kontent-ai/webhook-helper

Version:

This utility helps with webhook notifications from Kontent.ai

26 lines (20 loc) 834 B
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();