使用body-parser + expressjs是可以的.但我的问题是:如何在Hapijs中获取原始请求体的缓冲区?
我正在谈论的事情就像buf身体解析器npm包的这个函数中的参数:verify(req,res,buf,encoding)
我在messenger-platform-samples例子中需要它来实现这个功能:
function verifyRequestSignature(req, res, buf) {
var signature = req.headers["x-hub-signature"];
if (!signature) {
console.error("Couldn't validate the signature.");
} else {
var elements = signature.split('=');
var method = elements[0];
var signatureHash = elements[1];
var expectedHash = crypto.createHmac('sha1', APP_SECRET)
.update(buf)
.digest('hex');
if (signatureHash != expectedHash) {
throw new Error("Couldn't validate the request signature.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我需要在我的中间件中使用它server.ext(),如下所示:
server.ext({
type: 'onRequest',
method: (request, reply) => {
var signature = request.headers["x-hub-signature"];
if (!signature) …Run Code Online (Sandbox Code Playgroud)