我的路线类似于:
router.get("/users/:id/thing", middlewareObj.isLoggedIn, function(req, res){
res.render("thing.ejs");
});
我希望只有当前用户的id与路由中的“:id”匹配时才能访问此路由。我该怎么做呢?非常感激。
答案 0 :(得分:1)
您可以使用参数ID比较已记录的用户(我假设您在req.user [确实应该检查护照]中):
if(req.user.id != req.params.id) return res.status(400);
您可以从网址中删除ID,只需使用已记录的用户数据即可。因为如果url id与用户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");
});