期限切れのセッションについてクライアントに通知する-Webプログラミング
-
03-07-2019 - |
質問
セッションの有効期限が切れたことをユーザーに通知することは可能ですか?ブラウザはサーバーとして機能し、そのような通知を受信できますか?
1つの解決策は、クライアント側でカウントダウンを行い、最終的にクライアントに通知するJavaScriptを生成することですが、最初の方法でそれを実行できる場合、私は興味がありますか?
そして、最初のアプローチの結果は何ですか?セキュリティ上の懸念はありますか?
たとえば、djangoで可能な実装は何でしょうか?
解決
URLを確認するために XMLHTTPRequest
を使用して、JavaScriptで定期的に(たとえば30秒ごとに)通知を求めてサーバーをポーリングすることができます。セッションがタイムアウトになった場合、サーバーはそのURLにそれを示すものを配置し、通知をポップアップ表示できます。これは、回答を作成している最中に他の誰かが既に質問に回答したという通知をStackoverflowが実装する方法です。
他のヒント
comet をご覧ください。ただし、javascriptタイマーと思われます破損する可能性が低く、実装しやすいはるかに優れたソリューションになります。
実際にそのステップで認証を行うのではなく、有効期限の通知のみを提供しているため、セキュリティへの影響は考えられません。
ある種の comet タイプのものを探しています。おそらく最も簡単な「サーバープッシュ」サーバーにポーリングするだけです。
実際、Djangoでは、ファイルシステムまたはデータベースエンジン=&gtを使用する場合、サーバー側の有効期限はありません。有効期限が切れているクライアントCookieセッションIDです。それ以外の場合、キャッシュベースのセッションを使用している場合、キャッシュの有効期限をセッションCookieの有効期限よりも大きい値に設定できます。
次に、ログイン時にクライアントブラウザにフラグを立てるために、有効期限なしでCookieを宣言し、すべてのページでセッションIDをチェックインします。 セッションID Cookieがなく、「Cookieフラグ」が存在する場合、セッションは期限切れになります。サーバーを確認する必要はありません。