2016-09-24 8 views
0

私はAngularアプリケーションでページのルーティングに現在ui.routerを使用していますが、アクセス許可のないユーザーにアプリケーションの一部を悪用する際に問題が発生し始めています。角度uiルーティングとアクセス許可

私はこれについての文書を見つけようとしましたが、運賃はありませんので、ここに誰かがこのアプローチをとってくれることを願っています。

私のアプリケーションでは3ページありますが、すべてがmoderatorsページに行くことはできません。もし私がもちろん許可サーバー側を検証してリダイレクトするのであれば、私のアプリケーションのすべての可能なページを表示することは少し悪用されていると感じます。何らかの形でこれをui.routerで制限することができますか?ルータのファイルサーバ側、または私は:)

$stateProvider 
    .state('default', { 
     url: '/', 
     views: { 
     'mainViewContainer': { 
      templateUrl: 'pages/default.html' 
      } 
     } 
    }) 
    .state('news', { 
     url: '/news', 
     views: { 
     'mainViewContainer': { 
      templateUrl: 'pages/news.html' 
      } 
     } 
    }) 
    .state('moderators', { 
     url: '/moderators', 
     views: { 
     'mainViewContainer': { 
      templateUrl: 'pages/moderators.html' 
      } 
     } 
    }); 

答えて

0

と一緒に暮らすために必要なだけの何かが解決使用して追加してみてくださいということです - 状態のための前提条件ですもののリストを。

.state(..., { 
    ... 
    resolve: { 
     adminPermission: (AdminService) => { 
       return AdminService.validate(); 
     } 
    } 
    ... 
}) 

AdminServiceが失敗した約束を返す場合、アプリが状態に入ることはありません(とあなたが$onStateChangeErrorイベントを使用して、それをキャッチすることができます)

編集: どうモデレータ状態の作成についてif節にある

If(isAdmin) 
    stateProvider.state(...) 
+0

はい、それでも、自分のマシンにダウンロードされたjavascriptファイルを参照するユーザーに経路が表示されることはありません。私は彼にもページが存在することを見ることができないようにしたいと思います – aweis

+0

別の設定ファイルを生成したくない場合は、状態を登録する前にif節を追加するのはどうですか? – eavidan

+0

私はif節について理解していませんか? – aweis

関連する問題