古典的なアプローチご存知のとおり、アカウントのセキュリティのため、ユーザーが積極的にクリックしてシステムからログアウトしない場合は、ブラウザまたはタブを直接閉じてシステムから強制的にログアウトする方法は次のとおりです。 //閉じるときにログアウトインターフェースを呼び出す window.onbeforeunload = function() { // ログアウトの Ajax 呼び出しを実行します。簡単な例 $.ajax({url:"/logout"}); }; 質問この方法には重大な問題があります。ページを更新するとログアウトが呼び出されます。多くのシステムでは、セッションを維持するためにページの更新をサポートする必要があります。どのように対処すればよいでしょうか? 解決策はありませんが、機能します: //閉じるときにログアウトインターフェースを呼び出す window.onbeforeunload = function() { // ログアウトの ajax 呼び出しを実行し、フラグを渡して、バックエンドにログアウトを遅延するように指示します$.ajax({url:"/logout"},data:{delay:true}); }; バックグラウンド ログアウト インターフェイスは、遅延フラグに従ってタイマーを設定し、ログアウトを遅延します。たとえば、5 秒のタイマーが設定されている場合、アプリケーション システム セッションは実際には 5 秒後にログアウトされます。 同時に、フロントエンド ページが読み込まれた後、クリア ログアウト インターフェイスをすぐに呼び出して、バックグラウンドに遅延ログアウト タイマーを削除するように指示し、ページが更新されてアプリケーション セッションが維持されるときに、以前のログアウト操作が破棄されるようにする必要があります。 その他の質問バックグラウンド タイマーの遅延はどの程度まで信頼できますか? もちろん、短いほど良いと期待しています。短いほど、ユーザーがブラウザを閉じてページを再度開いたときにセッションが復元されなくなるからです。たとえば、バックグラウンドで 5 秒のタイマーが設定されているとします。ユーザーがブラウザを閉じてからページを再度開くまでの間隔が 5 秒を超える限り、セッションは復元されず、ユーザーはログイン ページに再度アクセスすることになります。 もちろん、ユーザーの手の速度が速すぎて、5 秒以内にページが再度開かれた場合は、以前のセッションが正常に開始されます。もちろん、悪意のあるユーザーは、ユーザーが離れたコンピューターを使用してページを非常に速く開くことはできないため、これは深刻な問題を引き起こすことはありません。 それでどうする? 何秒の遅延を設定する必要がありますか? これは、フロントエンド コードがページの読み込み時に遅延ログアウト タイマーをクリアするためにいつ呼び出すかによって異なります。重要な点は、早ければ早いほど良いということです。 <html マニフェスト=""> <ヘッド> <meta http-equiv="X-UA-compatible" content="IE=edge"> <メタ文字セット="UTF-8"> <meta http-equiv="プラグマ" content="キャッシュなし"> <meta http-equiv="キャッシュコントロール" content="キャッシュなし"> <meta http-equiv="有効期限" content="0"> <script type="text/javascript"> // 遅延ログアウト タイマーをできるだけ早く呼び出してクリアするには、元の XMLHttpRequest メソッドを使用して呼び出します。var xhr = new XMLHttpRequest(); もし(xhr){ xhr.open("POST", '/clearlogout', true); xhr.send(); } </スクリプト> ...... 上記の処理の後、通常のネットワーク条件下では、ページの更新操作により、遅延ログアウトの呼び出しと遅延ログアウトのクリアの間の時間間隔が非常に短くなることが保証されます。一般的に、5 秒がより合理的な遅延値です。 注意が必要な問題明らかに、上記のメカニズムはバックエンドの 2 層セッション メカニズムに依存する必要があります。前提として、まずページの更新セッション保持をサポートする必要があるため、表面層は Web フレームワーク自体のセッションであり、内部層はアプリケーション層セッションです。 表面セッションはクッキーに依存し、内部アプリケーションセッションはバックグラウンドキャッシュメカニズムまたはデータベースに依存します。 jsを使用してブラウザを閉じるときにアカウントからログアウトする方法についての記事はこれで終わりです。jsを使用してブラウザを閉じるときにアカウントからログアウトする方法の詳細については、123WORDPRESS.COMの以前の記事を検索するか、次の関連記事を続けて閲覧してください。今後とも123WORDPRESS.COMを応援してください。 以下もご興味があるかもしれません:
|
<<: CSS 命名: BEM、スコープ付き CSS、CSS モジュール、CSS-in-JS の説明
>>: MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス
MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、...
ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...
背景: parseInt(0.006) または parseInt(0.0006) は 0 という値を...
目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...
この記事では、JSオブジェクト指向タイピングゲームの具体的なコードを参考までに紹介します。具体的な内...
空のリンク:つまり、ターゲット エンドポイントとのリンクはありません。フォーマット <a hr...
ウェブサイトの開発とメンテナンスのコストが削減されるだけでなく、コードもよりセマンティックになります...
どちらの方法も、一定時間後に JavaScript コードを実行するために使用できますが、それぞれに...
目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...
Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...
目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...
これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...
今日、私は <a href="#13"></a> につい...
レンダリング ネットで関連情報を調べたところ、現在のダイナミックグラデーションボーダーの実装方法のほ...
スロークエリログ関連のパラメータMySQL スロー クエリ関連のパラメータの説明: slow_que...