5

私は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 が削除されることを期待するのは合理的ですか?

4

2 に答える 2

3

これは予想される動作ですか?最初にタブを閉じてからブラウザを閉じたときに、サイトのセッション Cookie が削除されることを期待するのは合理的ですか?

どうやらはい、これは予想される動作であり、いいえ、そのようなことを期待するのは合理的ではありません。表示されている動作は、ブラウザが「セッション復元」機能を実装する方法における意図的な設計上の決定のようです。

つまり、要するに、フラスコがどんなに素晴らしいものであっても、サーバー側からこれについてできることは何もないと思います:(

于 2013-09-30T19:08:01.170 に答える