我想实现一种机制来混淆我的应用程序中的id字段。现在所有的id字段都是整数。我想使用某种可逆哈希来创建对应于id字段的随机字符串。另外,我正试图通过对整个项目进行微小的更改来完成此任务。Sails.js:如何访问和修改中间件中的req.params
我想到的一件事是编写一个中间件来拦截每个请求和响应对象,并检查是否存在id
字段。如果请求包含id
字段并且它是混淆版本,请解码该字符串并将该请求参数替换为整数ID。
如果响应中包含整数id,请对其执行编码功能,将混淆的id发送给客户端。
我面临的问题是修改req
对象。 id
字段可以存在于req.body
或req.params
或res.query
中。但是,在中间件中,当它出现在req.params
中时,我无法看到ID字段。
我试过使用策略。但是我面临的问题是,即使在更改req.params
后,控制权到达控制器时,更改也会丢失。什么是解决这个问题的建议方法?
下面是示例代码:
在政策:
module.exports = function (req, res, next) {
req.params.id = '12345';
req.query.pageSize = 30;
req.body = {};
sails.log.info('req.params', req.params);
sails.log.info('req.query', req.query);
sails.log.info('req.body', req.body);
return next();
};
我只是修改的req.params,req.query和req.body值。
当我尝试访问控制器中的这些值时,req.query和req.body的值是在策略中更改的修改值。但是,req.params变回客户端发送的内容,并且策略中所做的更改丢失了
一些代码,请问? – SkyQ
@SkyQ:增加了一些示例代码。我现在做的不多。只是改变req.params,req.query和req.body –