小编Dyl*_*ang的帖子

如何在Hapijs中获取原始请求主体的缓冲区?

使用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)

node.js hapijs body-parser

2
推荐指数
1
解决办法
2047
查看次数

标签 统计

body-parser ×1

hapijs ×1

node.js ×1