Javascript Node js:如何将授权和身份验证集成到我的节点应用程序中?

Javascript Node js:如何将授权和身份验证集成到我的节点应用程序中?,javascript,node.js,Javascript,Node.js,在我的节点应用程序中,我有一个管理员可以发出所有请求,而普通用户只有权发出某些请求 例如: 管理员可以制作: 在/root、/user、/tools上发布 简单用户可以: 在/users、/tools上发布 如果一个简单用户试图在/root上发出请求,他只会收到一条错误消息 我如何处理这个是节点js?哪一个包,如果可能的话,举几个例子 谢谢一般的方法应该是定义一个自定义中间件来验证身份验证 function VerifyUser(req, res, next){ if(user.isAuthe

在我的节点应用程序中,我有一个管理员可以发出所有请求,而普通用户只有权发出某些请求

例如:

管理员可以制作:

在/root、/user、/tools上发布

简单用户可以:

在/users、/tools上发布

如果一个简单用户试图在/root上发出请求,他只会收到一条错误消息

我如何处理这个是节点js?哪一个包,如果可能的话,举几个例子


谢谢

一般的方法应该是定义一个自定义中间件来验证身份验证

function VerifyUser(req, res, next){
 if(user.isAuthenticated){
   return next(); //call the next middleware
 }
 next(err); //call the error middleware 

}
错误处理程序

app.use(function(err, req, res, next) {
    if(!err) return next(); 
    res.status(500).json(new Error('error happened'));
});
然后,对于每个需要身份验证的路由,在路由器中间件之前绑定VerifyUser中间件。 因为在express中,中间件顺序是相关的,所以首先会调用VerifyUser,如果分支到达下一次调用,则会触发路由功能

经过身份验证的路由:

非认证路由:


对于堆栈溢出来说,这类问题是离题的。然而,我知道很多人使用用户身份验证和授权。@MikeC这不是一个编码问题吗?你能解释一下为什么这是离题的吗?因为你要的是一个能帮你完成这一任务的软件包。即使您删除了这一行,授权/身份验证也是一个很难解决的问题,而且这个问题太广泛,无法用这种格式回答。
router.get('/root', VerifyUser, function(req, res){
 //if you reach this point means the user has been granted the access

})
router.get('/tools', function(req, res){

})