如何在nodejs中正确使用经过身份验证的中间件

How to use authenticated middleware properly in nodejs

我刚开始使用 express 框架开发节点。

app.use('/', auth, users);

这是我的路线文件

router.get('/' , function(req, res, next) {
   render("dashboard");
});

router.get('/first' , function(req, res, next) {
   //first request
});
router.get('/second' , function(req, res, next) {
   //second request
});
so on...

我的问题是,当我传递中间件时,它会使用 passportjs 检查每个请求是否经过身份验证,但假设我有一个仪表板并且我正在发送 10 个 ajax 请求来获取小部件的数据。因此仅对于仪表板,它会调用反序列化函数 11 次,首先是呈现页面,然后是 10 ajax 请求。我读了这里给出的答案, How to properly use Passport.js? 但是采用这种方法可以吗?

是的,如果您不想出现安全问题,可以采用这种方法。你必须检查每个请求的用户,很简单的人检查浏览器调试器中的网络选项卡,了解发生了什么,然后开始欺骗你的请求。你不能为了性能而牺牲安全性,因为你想少执行一些查询。