大佬教程收集整理的这篇文章主要介绍了angularjs – Node.js / Angular.js管理员授权的路由,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想让某些路由/ admin / etc …只能由也是admin的登录用户访问.我在mongo中设置了一个isAdmin标志.我是nodejs的新手,想知道检查这个的最佳方法是什么.我是否在路线的角度边做?或者我可以以某种方式创建基于权限的身份验证令牌?作为参考,我遵循MEAN机器书中的代码,特别是在这里 –
https://github.com/scotch-io/mean-machine-code/tree/master/17-user-crm
使用JWT,您可以在令牌中嵌入有关用户的声明,如下所示:
var jwt = require('jsonwebtoken'); var token = jwt.sign({ role: 'admin' },'your_secret');
要映射表达路由的权限,可以使用connect-roles构建清晰且可读的授权中间件功能.假设您的JWT是在http标头中发送的,并且您拥有以下(天真)授权中间件:
// Naive authentication middleware,just for demonstration // Assumes you're issuing JWTs somehow and the client is including them in headers // Like this: Authorization: JWT {token} app.use(function(req,res,next) { var token = req.headers.authorization.replace(/^JWT /,''); jwt.verify(token,'your_secret',function(err,decoded) { if(err) { next(err); } else { req.user = decoded; next(); } }); })
这样,您就可以在路由上强制执行授权策略,如下所示:
var ConnectRoles = require('connect-roles'); var user = new ConnectRoles(); user.use('admin',function(req) { return req.user && req.user.role === 'admin'; }) app.get('/admin',user.is('admin'),function(req,next) { res.end(); })
请注意,有更好的选择发布&验证JWT,如express-jwt,或使用passport和passort-jwt
以上是大佬教程为你收集整理的angularjs – Node.js / Angular.js管理员授权的路由全部内容,希望文章能够帮你解决angularjs – Node.js / Angular.js管理员授权的路由所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。