我想与您(社区)分享我的问题。
I use MEAN
堆栈,所以我使用Node.js
with Express
and AngularJS
我有单个应用程序。
I use passport
作为身份验证策略Node \ Express \ Jade
代码。
我想在我的页面上创建管理部分来管理用户和其他内容。
我还想通过向我的 $routeProvider 添加一些访问控制来保护异步加载的 AngularJS 站点,例如:
$routeProvider.when('/admin/users', {
templateUrl: '/views/admin/users.html',
auth: {
required: true,
roles: ['admin']
}
})
这只是我想在真正的解决方案中实现的伪代码。
如果用户未登录,应重定向到/signin
页面,如果用户已登录并且没有适当的角色来查看此页面,则应重定向到包含自定义信息的适当视图。
我更喜欢在服务器端处理访问控制,如果用户无法访问它,则不向用户提供任何服务。然后,我字段并解释来自服务器的响应,以执行诸如重新路由到登录表单之类的操作。
这允许真正灵活的安全机制。例如,我可以使用防火墙配置后端安全性,如您所描述的那样(其中路由“/admin”及其所有后代都应受到保护)。我可以使用 ACL 来保护单个对象,或者SecurityManager
允许对发出请求的用户进行更复杂的分析。
也许这不是对您问题的直接答案,而是鼓励以不同的方式解决问题。但我仍然认为,就纯 JS 访问控制而言,这是比我所见过的任何方法更好的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)