8 javascript user-permissions angularjs angular-ui-router
我正面临着如何根据从服务器获取的远程数据实现路由限制的问题.
假设我有以下配置文件:
angular.module('myApp')
.config(['$stateProvider', function($stateProvider) {
$stateProvider
.state('post', {
url: '/post/:post_id',
abstract: true,
[...]
})
.state('post.view', {
url: '/view'
[...]
})
.state('post.edit', {
url: '/edit'
[...]
})
}]);
Run Code Online (Sandbox Code Playgroud)
我的申请要求是:
帖子有所有者(帖子的创建者),其域名可以是公共的或私有的.
如果域是公共的,则每个用户都可以看到帖子(进入状态post.view),如果不是(域是私有的),只有所有者才能看到它.
post.edit只有业主才能进入该州.
要做到这一点,最好的方法是什么?
我正在考虑有一个解决承诺,从服务器(post的域和通讯用户角色)获取数据,执行所需的检查并相应地返回(承诺已解决或拒绝).
但是,如果他没有被授权,我将如何将用户重定向到正确的状态?例如,如果帖子的域是公共的,则尝试访问该post.edit状态的普通用户应该被重定向到该post.view状态...但是如果帖子的域是私有的,则应该呈现未授权的访问页面.在决心上直接做到这一点是一个好方法吗?有哪些替代方案?
看看这个基于角色的路由授权的精彩教程:
另外看看这个stackoverflow的答案,这里有基于登录的条件路由,你可以使用相同的逻辑角色为你的目的,
| 归档时间: |
|
| 查看次数: |
18198 次 |
| 最近记录: |