我正在使用node.js构建一些RESTful API。我是node.js的新手。我在2天前开始了。这是我试图做的。
使用邮递员发送以下请求。
POST /register HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Authorization: 415952c44ac7de13f01cdf46bac5e590f29ff12211054e16f71098ca8909652b
Cache-Control: no-cache
Postman-Token: 26087979-05c0-1d75-8822-41809272ef46
{
"email":"a@abc.com",
"name": "abc xyz"
}
Authorization标头的值是为请求主体计算的HMACSHA256。为了测试,我使用http://www.freeformatter.com/hmac-generator.html来计算HMACSHA256,并确保我使用相同的密钥来计算hmac。
在Node.js中我使用相同的请求体来使用以下代码计算HMACSHA256
app.use(bodyParser.json({
verify: function (req, res, buf, encoding) {
console.log('json encoding: ', encoding);
var hmac = crypto.createHmac('sha256', 'a secret');
hmac.update(buf.toString());
req.hasha = hmac.digest('hex');
console.log("hmac: ", req.hasha);
// get rawBody
req.rawBody = buf.toString();
console.log(req.rawBody);
}
}));
问题是,这给了我错误的HMACSHA256值。在处理缓冲区之前,感觉某些东西正在被修改。我不确定我做错了什么,或者是否有更好的方法。