Если вам нужно вычислить HMAC по необработанному телу запроса, вам не нужно его анализировать, или, по крайней мере, first возьмите необработанное тело запроса, вычислите HMAC, затем разберите его.
Чтобы сделать последнее, вы можете использовать express.json
s verify
параметр:
app.use(express.json({
verify(req, res, buf, encoding) {
req._hmac = hmac(buf);
}
}));
Это будет использовать функцию под названием hmac
для вычисления HMAC по телу запроса (передается как буфер в аргументе buf
).Затем он продолжит анализировать тело запроса как JSON.
Предостережения:
- вычислит HMAC для каждого запроса, который передал тело запроса;
- itне будет работать, если вычисление HMAC является асинхронным.
Обе проблемы относительно легко решить, хотя.