問題タブ [flask-principal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flask - Flask-auth、プリンシパル、Flask セキュリティ
これら 3 つの拡張機能に根本的な違いがあるのか、それともすべて同じようなことをするのか、誰にもわかりますか? 私はドキュメントを読んでいますが、かなり多くのクロスオーバーがあるようです。より多くの機能を提供するだけのものもあると思います。
特定のユーザーが特定の権限を持つように、アプリにユーザー ロールを追加したいと考えています。つまり、レベル 1 のユーザーは 5 つのリソースを作成でき、レベル 2 のユーザーは 10 のリソースを作成できます。このhttp://flask.pocoo.org/snippets/98/の行に沿ってデコレータを使用することを検討していますが、このソリューションにはセキュリティ上の問題がありますか? 私はすでに Flask-login を使用しているので、これと統合します。
python - Flask-Login および Flask-Principle の認証済みユーザーは、flask_login.AnonymousUserMixin にドロップされます
2つの問題が発生しています
- 私の認証済みユーザーは常にflask_login.AnonymousUserMixinに落ちる
- Flask-Login と Flask-Principal を使用して予期しないシグナルを受け取る
@admin_permission.require(http_exception=403)で保護されている /projects/10 URL を取得しようとしています
これは私のコンソール出力です:
ログイン フォームにアクセスする (これまでのところすべて問題ありません)。有効なログインとパスワードを入力し、クレイジーなシグナルと動作を取得することは、私が期待するものではありません:
ご覧のとおり、有効な Employee インスタンス (クラス) と ID id=103 を指している current_user を取得しましたが、すぐに何らかの理由でflask_login.AnonymousUserMixin になり、認証システムはそのユーザーを渡し、/projects/ を開くことを許可しません。 10 URL。
何が間違っているのですか?そして、なぜそんなに多くのシグナルを受け取っているのか-コードによれば、ログインが成功した場合にのみ発生するはずです。何が恋しいですか?
ソースコード:
そして私のEmployee SQLAlchemyクラス
python - Flask のログインとプリンシパル - ログインしていても current_user は匿名です
ID とロールの管理に Flask Login と Principal を使用しています。私のニーズは、ドキュメントから直接説明されています。私のコードはここにあります:
私のログインコードでは、これを行います:
ログインすると、シグナルは期待どおりに発火します。後続の各ページ読み込みでは、current_user は匿名であり、ユーザー ID を持っていませんが、すべての @login_required 関数は、ユーザーがログインしているかのように動作します。Flask ログインは、ユーザーがログインしていることを認識していますが、何らかの理由で current_user に一貫性がありません。
どこかに構成の重要なポイントがありませんか?
python - フラスコプリンシパルで複数のrequireが必要
私はflaskプリンシパル、最新バージョンのFlask-Principal(0.4.0)を使用していますgpsData、レポート、エントリなど
の特定のURLルートがあります
個々のルートは、複数のユーザー ロールで表示できます
url------------ ロール
gpsData -- 管理者、レポーター、クライアント
レポート -- 管理者、レポーター
エントリ -- 管理者、クライアント、data_entry
など
この場合、「reporter.require」のみが機能しているように、一度に1つのrequireのみが機能するようです。管理者 ID を使用してログインすると、エラーが発生します。
アップデート:
また、テンプレートでは、特定のユーザー ロールのみが表示できる URL を表示したいだけです。
python - Flask Principal に基づく条件付きロジック
コードを条件付きで実行するためにフラスコのプリンシパルにアクセスする方法はありますか?
関数では、次のようなことをしたいと思います:
次に、テンプレートで:
python - Flask Principal オンデマンドの粒状リソース
私はこの投稿を見てきました: http://pythonhosted.org/Flask-Principal/#granular-resource-protection
現在の動作に問題はありませんが、ログイン時にすべての投稿が読み取らEditBlogPostNeed
れ、ID に追加されるため、非常に使いやすいとは言えません。
ビューにアクセスするときに投稿をチェックしたいので、通常よりも多くの投稿を書いている場合、長期的にはあまり良い戦略ではないと想像してください/posts/<post_id>
。
を使用してビューの各リクエストでこのチェックを行う方法はありFlask Principal
ますか?
もちろん、遅延関係クエリとフィルターを使用して非常に簡単に回避できますが、Flask Principal
.
python - Flask-Principal PermissionDenied 例外処理のベスト プラクティス
私はフラスコを書くのが初めてで、現在flask-principal
承認メカニズムとして使用しています。ユーザーが必要な許可なしで URL にアクセスしようとすると、flask-principal はPermissionDenied
例外を発生させます。
システムがエラーをスローする原因となり500 internal server
ます。
特定の例外をキャッチして、代わりにユーザーを警告ページにリダイレクトするにはどうすればよいですか? コード例を共有できれば、非常に役立ちます。
python - Flask-Principal、Flask-Login、remember_me、identity_loaded
私はFlask-LoginとFlask-Principalを使用してFlaskアプリに取り組んでおり、Flask-Loginの記憶機能を除いて、これまでのところすべて正常に動作しています。
実際には、Flask-Login 側で記憶機能が機能しますが、Flask-Principal の identity_loaded 関数はトリガーされません。
@login_manager.user_loader と @identity_loaded.connect の呼び出しをログに記録すると、ログイン時に両方が呼び出されますが、ブラウザーを閉じて再度起動すると、@login_manager.user_loader だけが呼び出されます。したがって、ユーザーは基本的にログインしますが、ロールは取得しません。
Flask-Login は GitHub でクローズ済みの問題 #19を持っていますが、実際には私の質問には答えていません :-/
ユーザーが Cookie から読み込まれたときにどのように反応するか考えている人はいますか?