如果当前用户的ID与所述路由中的ID匹配,如何才允许访问路由? 的NodeJS

我有一个类似这样的路线:

router.get("/users/:id/thing", middlewareObj.isLoggedIn, function(req, res){ res.render("thing.ejs"); }); 

如果当前用户的ID与路由中的“:id”相匹配,我希望此路由只能被访问。 我怎么去做这个? 非常感激。

你可以比较logging的用户(我假设你有req.user [确实你应该检查护照])与参数ID:

 if(req.user.id != req.params.id) return res.status(400); 

您可以从url中删除该ID,并简单地使用logging的用户数据。 因为如果urlID与用户ID相匹配,那么您有一些冗余的东西。 所以,这个..

 router.get("/users/thing", middlewareObj.isLoggedIn, function(req, res){ let id = req.user.id; //do something with the ID which you assume you do, otherwise why you want the ID in the first place ... //return the view res.render("thing.ejs"); });