2016-07-19 18 views
1

私はAngular 2を使用して書いておきたいアプリケーションを設計していますが、全体的なデザインに大きな影響を与える基本的な質問がありました。どのように "正しい角度の方法"を行うかと一緒に。私の質問は次のとおりです。角2の動的ルートビルドとコンポーネントレベルのパーミッション

1)ダイナミックルーティングの質問:ルートコンポーネントの最初にすべてのルートを配置したところで、ドキュメントが現在推奨している方法が嫌いです。安全なコンポーネントモジュールが初期化され、ユーザーがその特定の領域/モジュールにアクセスできることが確認されると、ルート構成オブジェクトに動的に追加/削除できるようにしたい。例:ルートapp.componentは、アプリケーションのパブリック部分の初期パブリックルート設定を設定するなど、アプリケーションの初期設定を行います。ユーザーが正常にログインした場合、AT THAT POINTでは、セキュアコンポーネントを初期化して、一般的なセキュアルートをルータに動的に追加します。私は、親コンポーネントが初期化され、ユーザーがアクセスされたときにルート構成に追加するルートをユーザーがアクセスできるルートを定義するように、セキュアな子コンポーネントと同じことを実行したいそのコンポーネントにアクセスできることが確認されました。それで、これも可能ですか?例では、ルート設定は定数ですが、私はルート設定に追加するコンポーネントを使ってこれを実行できることを期待していました。

2)コンポーネントレベルのアクセス許可:コンポーネント全体にアクセスできるだけでなく、そのコンポーネント内にユーザーが持つ可能性のあるアクセス許可もあります(例:ユーザーが装置モジュールにアクセスしています。機器リストを読むためのアクセス権を持っていますが、CUDは使用できません)。私は、ユーザーのアクセス許可をdb内のデータベースに格納できるようにしたいと考えています。 (例: "userID、 'equipment.retrieve'")次に、アクセス許可があるアクセス権(すなわちpermission = "equipment.retrieve")のプロパティを受け入れる構造化ディレクティブを作成し、それは偽に評価されます。これは私の質問は、これは、クライアント側で十分なセキュリティのためのアクセス許可ですか?私はアクセス許可を持っていない場合は、とにかくユーザーをブロックする必要がありますAPIレベルの権限チェックを持っていますが、クライアント側でこの最善の方法をやって。

私は私が得ることができる任意のフィードバックを大好きです。

答えて

1

一度にすべてのルートをロードする必要がありますが、後で

router.resetConfig([ 
{ path: 'team/:id', component: TeamCmp, children: [ 
    { path: 'simple', component: SimpleCmp }, 
    { path: 'user/:name', component: UserCmp } 
] } 
]); 
のようにそれらを再度読み込むことができます

この方法では、いつでも経路配列を変更し、ルータ構成を新しい更新経路配列にリセットすることができます。

New Angular2 router configuration

https://github.com/angular/angular/issues/11437#issuecomment-245995186が面白いRC.6 Plunker

+0

を提供して参照してください。私は、ルート設定を維持し更新するためのサービスを作成できると思います。私が望んだほど清潔ではありませんが、うまくいくでしょう。ありがとう! アクセス権に関する考えはありますか? – JakeHova

+0

アクセス権についてのアクセス権が不明です。構造指令のアプローチは妥当と思われる。 「十分なセキュリティ」を確保するために、サーバー上でセキュリティを強化する必要があります。クライアント上でセキュリティが確保されていれば、セキュリティは完全に保護されません。クライアント上ではカーテンのように誰でも簡単に削除して彼が望むものを見ることができます。 –

関連する問題