diff --git a/src/validate-signature.ts b/src/validate-signature.ts index c24c20a..a10e5dd 100644 --- a/src/validate-signature.ts +++ b/src/validate-signature.ts @@ -1,5 +1,5 @@ import express, { type Request, Response, NextFunction } from "express"; -import { verify } from "@copilot-extensions/preview-sdk"; +import { verifyAndParseRequest } from "@copilot-extensions/preview-sdk"; export async function verifySignatureMiddleware( req: Request, @@ -11,17 +11,17 @@ export async function verifySignatureMiddleware( const signature = req.get("GitHub-Public-Key-Signature") as string; const keyID = req.get("GitHub-Public-Key-Identifier") as string; const tokenForUser = req.get("X-GitHub-Token") as string; - const verified = await verify(req.body, signature, keyID, { + const { isValidRequest, payload } = await verifyAndParseRequest(req.body, signature, keyID, { token: tokenForUser, }); - if (!verified) { + if (!isValidRequest) { console.log("Signature verification failed"); return res.status(401).send("Unauthorized"); } console.log("Signature verified"); - req.body = JSON.parse(req.body.toString("utf-8")); + req.body = payload next(); } catch (err) { console.error(err);