[英]AngularJs and Angular-UI-Router routes permissions
我正面臨着如何根據從服務器獲取的遠程數據實現路由限制的問題。
假設我有以下配置文件:
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'
[...]
})
}]);
我的申請要求是:
帖子有所有者(帖子的創建者),其域名可以是公共的或私有的。
如果域是公共的,則每個用戶都可以看到帖子(進入州post.view
),如果不是(域名是私有的),只有所有者才能看到它。
post.edit
狀態僅供所有者訪問。
要做到這一點,最好的方法是什么?
我正在考慮有一個解決承諾,從服務器(post的域和通訊用戶角色)獲取數據,執行所需的檢查並相應地返回(承諾已解決或拒絕)。
但是,如果他沒有被授權,我將如何將用戶重定向到正確的狀態? 例如,如果帖子的域是公共的,則應該將嘗試訪問post.edit
狀態的普通用戶重定向到post.view
狀態...但是如果帖子的域是私有的,則應該呈現未授權的訪問頁面。 在決心上直接做到這一點是一個好方法嗎? 有哪些替代方案?
看看這個基於角色的路由授權的精彩教程:
另外看看這個stackoverflow的答案,這里有基於登錄的條件路由,你可以使用相同的邏輯角色為你的目的,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.