@kontent-ai/webhook-helper
Version:
This utility helps with webhook notifications from Kontent.ai
26 lines (20 loc) • 834 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();