首页 > 解决方案 > 限制对用户 Node.js 的访问

问题描述

我想限制对/secrets路由的访问仅限于用户

app.get("/secrets", function(req, res){

  Post.find({}, function(err, posts){
    res.render("secrets", {
         posts: posts
      });
  });
});

我知道它应该是这样的:

app.get("/secrets", function(req, res){
  if (req.isAuthenticated()){
    res.render("secrets");
  } else {
    res.redirect("/login");
  }
});

但我不知道如何继续,因为我已经有一个回调函数。

标签: javascriptnode.jspassport.js

解决方案


您可以使用中间件,它是这样的。

app.get("/secrets", secretsPermissionCheck, function(req, res){
  // do your request processing
  }
});

您可以在中间件文件夹中编写以下代码。

module.exports = function secretsPermissionCheck(req, res, next){
        if(!isAuthenticated()) {
            res.redirect("/login")
    }else {
        next();
    }

} 

推荐阅读