簡體   English   中英

AngularJs和Angular-UI-Router路由權限

[英]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的答案,這里有基於登錄的條件路由,你可以使用相同的邏輯角色為你的目的,

Ui-router,基於權限的路由

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM