角度2のACL /紙ベースを実装する最良の方法は何ですか?角度2でACL /ロールベース認証を実装する方法は?
私のシナリオは、簡単に言えば、次のとおりです。ロールは動的で、クライアントが構成できるアクセス許可に基づいており、動的でも可能です。
私は、ユーザーが許可されていない特定のリソースにアクセスできないようにする必要があります。このために、私はAngards of Guardsのコンセプトを使用することを考えました。 CanActivate Guardを使用して、私は各ルートに入れる情報に基づいて、ユーザーの通過を許可するかどうかを設定できます。この情報は、そのルートが参照するリソースの名前になります。私が警備員になったとき、私は自分の役割と比較して、彼の役割がこの機能にアクセスできるかどうか、そしてナビゲーションを許可するかどうかを調べることができました。 - 彼はへのアクセス権を持っているリソースにユーザーをリダイレクトする方法
1:
しかし、その中には、さらに2つの問題に陥るだろうか?私はルートファイルをリストし、自分の役割に適合している人を探してそこにリダイレクトする必要がありますか?
2 - アクセス可能なページに表示されないコンポーネントを無効にするにはどうすればよいですか?たとえば、リスティングページXにアクセスできますが、新しいアイテムを作成するためのアクセス権がないため、[何かを作成]ボタンを削除する必要があります。または、むしろ、いくつかのロールに対して特定の情報を含んでいるがdiv要素の役割ではないdiv要素でこれを行う方法はありますか?
角度エコシステム内でこのシナリオにどのように最善のアプローチをとるべきかを知りたいと思います。
お寄せいただきありがとうございます。
注意:Angular 2はすべてをクライアント上に置くため、Angularのリソースを "保護"します(つまり、秘密キーまたはdオブジェクト)が不可能な場合は、データソースでそれを行う必要があります。 [表示されないメニュー項目(ボタン、データオブジェクトなどに拡張することができます)] (http://stackoverflow.com/questions/36041192)実際に見ているのは、ビジュアルコンポーネントの表示/非表示とリダイレクトです。/angle2-how-to-hideno-render-the-in-the-menu-after-check-access) [リダイレクト] (http://stackoverflow.com/questions/32896407/redirect-within-component 2)。 ACLをデータソースから引き出します。 – davmor
まだ問題の解決方法を見つけたかどうかはわかりません。しかし、[メニュー項目を非表示にする] @davmorのリンクは廃止予定の古いルータを使用しているので、古くなっています。現在のルータでは、ActivatedRouteが注入されるまで経路データを取得する方法がありません。その後、そのデータにアクセスできます。 – 12seconds