我正在编写一个自定义中间件,它为每个请求生成加密签名(它与AWS API v4使用的身份验证机制非常相似).为了正确生成此签名,我必须获取HTTP请求的整个原始主体.
我也在使用BodyParser,它是在我的自定义中间件之后注册的.
我的自定义中间件可以表示如下:
// libs/simplifiedSignatureCheckerMiddleware.js
module.exports = function (req, res, next){
// simple and fast hashing stuff
var payload = '';
req.on('data', function(chunk) { payload += chunk }, null);
req.on('end', function(){
// hmac stuff
console.log(payload);
var ok = true; // ...
if(ok)
next();
else
next("Bad")
});
}
Run Code Online (Sandbox Code Playgroud)
这就是我在服务器上使用它的方式.
// simpleServer.js
// BASE SETUP
// =============================================================================
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var jsonStream = require('express-jsonstream');
var …Run Code Online (Sandbox Code Playgroud)