Javascript 如果当前用户';s id是否与所述路由中的id匹配?NodeJS

Javascript 如果当前用户';s id是否与所述路由中的id匹配?NodeJS,javascript,node.js,express,Javascript,Node.js,Express,我有一条类似的路线: router.get("/users/:id/thing", middlewareObj.isLoggedIn, function(req, res){ res.render("thing.ejs"); }); 我希望只有当当前用户的id与路由中的“:id”匹配时,才能访问此路由。我该怎么做呢?非常感谢 您可以将登录的用户(我假设您在req.user[实际上您应该检查passport])与参数ID进行比较: if(req.user.id != req.params

我有一条类似的路线:

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

我希望只有当当前用户的id与路由中的“:id”匹配时,才能访问此路由。我该怎么做呢?非常感谢

您可以将登录的用户(我假设您在req.user[实际上您应该检查passport])与参数ID进行比较:

if(req.user.id != req.params.id) return res.status(400);
您可以从URL中删除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");
});

滚动您自己的身份验证是一件大事。调查护照js。我想护照是你特别想要的。正如您所说,它在允许访问路由之前检查用户是否经过身份验证。