11

認証と承認は、 Flask-LoginおよびFlask-Principalプラグインを介して Flask に統合できます。(または、Flask-Security プラグインを介して行うこともできます。)

ただし、 Flask -Admin -- バックエンド ダッシュボードを提供する別のプラグイン -- は登録済みの設計図ではありません...そして、Flask-Login および Flask-Principal によって使用されるデコレータは (私が知る限りでは)--そしてそれ以外の場合、ユーザーがレンダリングされたビューにアクセスするために必要な...これらのデコレーターは、登録されたブループリントの一部であるビューでのみ動作します。

2 つの質問:

1) アプリで Flask-Admin を設計図として登録する方法、および / または Flask-Login や Flask-Principal デコレータを有効にして Flask-Admin に関連付けられたビューを保護するにはどうすればよいですか?

2) Flask-Login と Flask-Principal は、プラグインからインポートされたオブジェクト (たとえば、「管理者」オブジェクト) ではなく、アプリの「ネイティブ」な部分であるオブジェクトでのみ機能するのはなぜですか? この問題を回避するにはどうすればよいですか...実際に正しく認識している場合はどうすればよいですか?

アプリのメイン インデックス ページ、またはブループリント内にあるビューを含む他のページの保護されたビューを作成するのは面倒ではないので、これが問題であると考えています。Flask-Admin インデックス ページ (これも設計図がありません) に対しては、それができないようです。

4

3 に答える 3

11

Flask-Admin は、認証を提供する別の方法を提供します。ビューAdminIndexBaseIndexビュー (またはcontribそれらのみが必要な場合はビュー) をサブクラス化し、is_accessibleメソッドを実装するだけです。詳細については、ドキュメントを参照してください。リポジトリにはサンプルも用意されています。

于 2012-08-04T01:38:36.803 に答える