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。我想护照是你特别想要的。正如您所说,它在允许访问路由之前检查用户是否经过身份验证。