問題タブ [flask-login]
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.
python - jinja2テンプレートでflask_loginセッションを使用する
登録/ログインリンクを含む単純な jinja2 テンプレートがあります。ユーザーがログインしたときにそれらを非表示にする必要があります。また、このためにflask_loginモジュールを使用します。
質問:ユーザーが jinja2 テンプレートにログインしていることをどのように識別すればよいですか?
flask - ログインを使用した Python Flask セッション
ログイン フィールドなしで Flask セッションを作成することは可能ですか。たとえば、ユーザーはユーザー名フィールドに電子メール アドレスのみを入力できます。これにより、セッションがアクティブになるまで、特定の有効期限でセッションが作成されます。
どんな助けでも大歓迎です。
python - Flask: ログイン セッションのタイムアウトが早すぎる
レコードの編集中に、たとえば数分 (コーヒーを飲みながら) 長い待ち時間があり、保存 (POST) を押すために戻ってくると、ログインする代わりにメイン ページにリダイレクトされ、データが失われます。
フラスコ ログイン セッションの有効期限が切れるのが早すぎるようです。
私はいくつかの調査を行い、これに出くわしました。
これは適切な方法ですか?しかし、これを試しても、次の例外が発生します。
python-2.7 - フラスコ: ImportError: フラスコという名前のモジュールはありません.ext.login
私はフラスコを初めて使用し、フラスコログインを使用して、Google プラスサインインとともにアプリケーションでユーザー認証を管理しようとしています。アプリケーションでフラスコ.ext.ログインを使用していますが、それは私を示しています
ImportError:flask.ext.login という名前のモジュールがありません
ここに私のviews.pyファイルがあります
修正方法を教えてください。前の議論に従ったとしても、インポート階層を間違った方法で使用していますか ?
python - Flask-Login:タブが閉じられたときにFirefox/ChromeにセッションCookieを強制的に削除させる方法は?
私はFlaskを学ぼうとしており、その過程でFlask-Login拡張機能を学んでいます。基本認証を期待どおりに機能させることができます。私が困惑した問題には、Firefox の [前回のウィンドウとタブを表示する] 設定と、Chrome の [中断したところから続行する] 設定が含まれます。このサイトや他の場所で私が行ったすべての調査は、これらの設定が開いているタブでのみ機能することを示しています. したがって、認証されてからタブを閉じてブラウザを閉じると、ブラウザは、ブラウザを閉じたときに開いていたタブのセッションのみの Cookie のみを復元する必要があります。ただし、Firefox と Chrome の両方で、ブラウザーを再起動したときにセッションのみの Cookie がまだアクティブであり、@login_required としてマークされたページに移動します。login_user(user, remember=False)
Flask-Login 拡張機能を使用して、ブラウザを閉じる前にタブを閉じると確実にセッションが古いものとしてマークされると考えて、新しいログインのアイデアを試してみましたが、そうではありません。ログインが新しい場合に true を返す値を調べlogin_fresh()
ますが、それでも True を返します。
を使用して一定時間後にログインを期限切れにする方法を見つけてからsession.permanent = True
設定しましapp.permanent_session_lifetime = 'so many minutes/seconds'
たが、これは完全に機能しますが、私が望むものではありません。
Firefox / Chrome が開いているタブのセッション cookie を記憶するという事実を受け入れることができますが、ブラウザーを閉じる前にタブを閉じても、なぜサイトのセッション cookie が記憶されるのか理解できません。これは予想される動作ですか?最初にタブを閉じてからブラウザを閉じたときに、サイトのセッション Cookie が削除されることを期待するのは合理的ですか?
python - エラーメッセージを回避するための SQLAlchemy の適切なモデル定義は何ですか: AttributeError: 'InstrumentedList' object has no attribute'?
典型的なデータ階層を持つ POS アプリケーションを作成しています: Company->branches->Sales->SaleData、これはモデル定義です (User モデルは既に準備されており、flask-login 互換モデルとして機能していることに注意してください) :
ここで、営業データをブランチに追加しようとしても、これを行うと発生しませんでした:
私はこれを行うことができます:
その[]
演算子を使用していない場合、次のエラー メッセージが表示されます: AttributeError: 'InstrumentedList' object has no attribute'. 私はすでにSOで別の回答を参照していますlazy
.backref定義のことと関係があるので、現在のモデルをすでに変更しています
しかし、ここで何かが欠けているようです..手がかりはありますか? ありがとう!
EDIT 1:ユニットテストが追加され、ユーザーモデルも追加されました
すでに Mark Hildreth から簡潔な回答を得ており、非常に助かっています! そのため、このモデルの完全な単体テストをここに置きます。SQLAlchemy の最初のステップで初心者に役立つと確信しています。だから、ここに行きます:
このモデルまたは単体テストには悪い習慣があるかもしれません。それを指摘していただければ幸いです:)
ありがとう!
python - フラスコ ログイン モジュールを使用した一時セッション
バックエンドが Flask を使用している iOS アプリケーションで一時セッションを作成/維持するにはどうすればよいですか。ユーザーセッション管理にはflask-loginモジュールを使用しています。ユーザーがサインアップ/サインインせずに、iOS アプリケーションを試用できるようにしたいと考えています。ユーザーが匿名の場合のアプリの動作は、ユーザーがログインしている場合と似ています。
ユーザーのデバイス トークンを一意の ID として使用したい。デバイス トークンだけでセッションを作成することは可能ですか (通常はユーザー ID とパスワードを提供します)。
python - Flask-Login で使用される「is_authenticated」メソッドのポイントは何ですか?
私は現在、Flask Mega-Tutorial に取り組んでおり、次のコードに出くわしました。
is_authenticated、is_active、および is_anonymous は私には非常に奇妙に思えます。定義済みの値以外の値を返すのはいつでしょうか?
Flask-Login がこれらの一見役に立たない方法を使用する理由を誰かが説明してくれませんか?
python - Flask フレームワークでログイン
私は Flask チュートリアルに従い、これらの一連のログイン関数コードについて質問があります (HTML 部分と Python 部分があります)。
HTML 部分:
パイソン部分:
このコードは通常どおり機能します。admin
ログインするには、ユーザー名ボックスとボックスに入力する必要がありpassword
ます。私の質問は、HTML 部分の次の 4 行についてです。
value="{{request.form['username']}}"
これをに入れるだけusername
で、ログイン プロセスが正常に機能するのはなぜですか? 適切に機能するには、このようにする必要がありますか?
sqlalchemy - Flask-SQLAlchemy – モデル内でクエリを作成できますか?
Flask-SQLAlchemy を使用するフラスコ Web アプリケーションを構築しています。Flask-Login を使用してセッションを管理し、特定のビューを保護することも検討しています。
Flask-Login には、アプリのさまざまな部分で役立つと思われる特定のメソッドが必要です (具体的には、is_authenticated()
とis_active()
。ただし、すべての例で、これらのメソッドは修正されたものを返すだけでした。たとえば、そのユーザーが実際にテーブルにエントリを持っているかどうかを確認したい場合 (私はログインに LDAP を使用しているので、ユーザーがテーブルにエントリを持っていなくてもログインできるようにしたい)テーブルが存在するかどうかを確認する必要があります)。
しかし、それを定義するクラス内からテーブル自体に対してクエリを実行できるかどうかはわかりません。または、これらの関数を別の場所に配置する必要がありますか (ユーザー クラス内のフラスコ ログインでメソッドが必要な場合でも)。