什麼是實現ACL /最好的辦法紙基具有角2?如何使用角度2來實現基於ACL /角色的授權?
我的情況下,簡單地說,是這樣的:角色是動態的,是基於權限的客戶端可以配置也可以是動態的。
我需要防止用戶能夠訪問,他沒有被授權做一個特定的資源。爲此我想到了使用角度守衛的概念。使用CanActivate Guard,我可以根據每條路線中放置的信息設置是否讓用戶通過。該信息將是該路線所涉及的資源的名稱。當我找到後衛時,我可以與他的角色進行比較,看看他的角色是否可以使用此功能以及是否允許導航。
但隨着在可能落入兩個問題:
1 - 如何給用戶,他有訪問資源重定向?我是否必須列出路線文件並尋找與他的角色兼容的人,然後在那裏重定向?
2 - 如何禁用它不能在它可以訪問頁面上看到的組件?例如,它可以訪問列表頁面X,但它無權創建新項目,所以我需要刪除創建按鈕。或者說,如何使用包含某些角色的特定信息而不是角色的div元素來實現這一點?
我想知道如何最好地角生態系統中處理這個情況。
感謝收聽。
警告:Angular 2將所有內容放在客戶端,因此「保護」Angular中的資源(即:密鑰或d ata對象)是不可能的,你必須在數據源處做到這一點。 所以你真正看着隱藏/顯示可視化組件和重定向,在這裏: [隱藏菜單項(可以擴展到按鈕,數據對象等)] (http://stackoverflow.com/questions/36041192/angular2-how-to-hideno-render-the-link-in-the-menu-after-check-access) [Redirecting] (http://stackoverflow.com/questions/32896407/redirect-within-component -angular-2)。我們從數據源中提取ACL。 – davmor
我不確定你是否已經找到解決問題的方法。不過,我想指出的是,爲[隱藏菜單項目]提供的鏈接@davmor已過時,因爲它使用舊版路由器,因爲它已被棄用。使用當前的路由器,無法獲取路由數據,直到注入ActivatedRoute ...之後,纔可以訪問它的數據。 – 12seconds