問題タブ [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.

0 投票する
2 に答える
5672 参照

flask - Flask-auth、プリンシパル、Flask セキュリティ

これら 3 つの拡張機能に根本的な違いがあるのか​​、それともすべて同じようなことをするのか、誰にもわかりますか? 私はドキュメントを読んでいますが、かなり多くのクロスオーバーがあるようです。より多くの機能を提供するだけのものもあると思います。

特定のユーザーが特定の権限を持つように、アプリにユーザー ロールを追加したいと考えています。つまり、レベル 1 のユーザーは 5 つのリソースを作成でき、レベル 2 のユーザーは 10 のリソースを作成できます。このhttp://flask.pocoo.org/snippets/98/の行に沿ってデコレータを使用することを検討していますが、このソリューションにはセキュリティ上の問題がありますか? 私はすでに Flask-login を使用しているので、これと統合します。

0 投票する
1 に答える
2035 参照

python - Flask-Login および Flask-Principle の認証済みユーザーは、flask_login.AnonymousUserMixin にドロップされます

2つの問題が発生しています

  1. 私の認証済みユーザーは常にflask_login.AnonymousUserMixinに落ちる
  2. 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クラス

0 投票する
2 に答える
4978 参照

python - Flask のログインとプリンシパル - ログインしていても current_user は匿名です

ID とロールの管理に Flask Login と Principal を使用しています。私のニーズは、ドキュメントから直接説明されています。私のコードはここにあります:

私のログインコードでは、これを行います:

ログインすると、シグナルは期待どおりに発火します。後続の各ページ読み込みでは、current_user は匿名であり、ユーザー ID を持っていませんが、すべての @login_required 関数は、ユーザーがログインしているかのように動作します。Flask ログインは、ユーザーがログインしていることを認識していますが、何らかの理由で current_user に一貫性がありません。

どこかに構成の重要なポイントがありませんか?

0 投票する
1 に答える
933 参照

python - フラスコプリンシパルで複数のrequireが必要

私はflaskプリンシパル、最新バージョンのFlask-Principal(0.4.0)を使用していますgpsData、レポート、エントリなど
の特定のURLルートがあります

個々のルートは、複数のユーザー ロールで表示できます
url------------ ロール
gpsData -- 管理者、レポーター、クライアント
レポート -- 管理者、レポーター
エントリ -- 管理者、クライアント、data_entry
など

この場合、「reporter.require」のみが機能しているように、一度に1つのrequireのみが機能するようです。管理者 ID を使用してログインすると、エラーが発生します。

アップデート:

また、テンプレートでは、特定のユーザー ロールのみが表示できる URL を表示したいだけです。

0 投票する
1 に答える
203 参照

python - Flask Principal に基づく条件付きロジック

コードを条件付きで実行するためにフラスコのプリンシパルにアクセスする方法はありますか?

関数では、次のようなことをしたいと思います:

次に、テンプレートで:

0 投票する
4 に答える
1194 参照

python - Flask Principal オンデマンドの粒状リソース

私はこの投稿を見てきました: http://pythonhosted.org/Flask-Principal/#granular-resource-protection

現在の動作に問題はありませんが、ログイン時にすべての投稿が読み取らEditBlogPostNeedれ、ID に追加されるため、非常に使いやすいとは言えません。

ビューにアクセスするときに投稿をチェックしたいので、通常よりも多くの投稿を書いている場合、長期的にはあまり良い戦略ではないと想像してください/posts/<post_id>

を使用してビューの各リクエストでこのチェックを行う方法はありFlask Principalますか?

もちろん、遅延関係クエリとフィルターを使用して非常に簡単に回避できますが、Flask Principal.

0 投票する
1 に答える
2427 参照

python - Flask-Principal PermissionDenied 例外処理のベスト プラクティス

私はフラスコを書くのが初めてで、現在flask-principal承認メカニズムとして使用しています。ユーザーが必要な許可なしで URL にアクセスしようとすると、flask-principal はPermissionDenied例外を発生させます。

システムがエラーをスローする原因となり500 internal serverます。

特定の例外をキャッチして、代わりにユーザーを警告ページにリダイレクトするにはどうすればよいですか? コード例を共有できれば、非常に役立ちます。

0 投票する
1 に答える
1522 参照

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 から読み込まれたときにどのように反応するか考えている人はいますか?