Javascript Node js:如何将授权和身份验证集成到我的节点应用程序中?
在我的节点应用程序中,我有一个管理员可以发出所有请求,而普通用户只有权发出某些请求 例如: 管理员可以制作: 在/root、/user、/tools上发布 简单用户可以: 在/users、/tools上发布 如果一个简单用户试图在/root上发出请求,他只会收到一条错误消息 我如何处理这个是节点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
谢谢一般的方法应该是定义一个自定义中间件来验证身份验证
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){
})