2016-05-05 5 views
0

Chromeブラウザの通常のウィンドウ(シークレットではない)を使用してログインしているユーザーがいます同じ資格情報を使用してログインすると、特定のユーザーが既にログインしていることを検出し、2回目のログインを許可しないようにしたいと考えています。Djangoは、ユーザーが通常のブラウザウィンドウから既にログインしている場合、シークレットブラウザウィンドウからログインします。

このような問題はほとんどありませんでした。これは、解決策がすべての古いセッションをクリアすることです。しかし、それは唯一の解決策ですか?これらのセッションはすべて手に入らず、アクティブなセッションが1つしかないことを保証することはできません。

+0

ここでオープンセッションを意味しますか? –

+0

私は 'アクティブセッション'は完璧な用語ではないと理解していますが、ユーザーが正常にログインした場合、Chromeブラウザとその特定のユーザーの1つのアクティブセッションと言うことができます。そのユーザーが後で他のブラウザからログインすることを許可したくありません。私はむしろユーザーに、ログインするために他のブラウザからログアウトしなければならないというメッセージを表示したいのです。 –

+0

しかし、 "ログアウトしていません"はアクティブなセッションを特定しません。ほとんどのユーザーは決してログアウトしません。しかし、ブラウザを閉じたり、コンピュータをシャットダウンしたり、他の100ものタブの数か月後にタブを開いたままにするとどうなるでしょうか? –

答えて

0

ユーザーのIPアドレスをリアルタイムで除外し、そのIPアドレスに関連するアクティブなセッションがあるかどうかを確認できます。

これがあると、シークレットや他のブラウザでユーザーが使用できなくなります。

とアクティブセッションでは、「アクティブなセッション」を決定するにはどうすればよい

+0

ダニエル・ローズマン(Daniel Roseman)氏は、ユーザーがブラウザを閉じて新しいブラウザウィンドウを開き、再度ログインしようとするとどうなるでしょうか?彼はブロックされませんか? –

+0

いいえ、彼が特別にログアウトするまで、そのセッションは開いているためです。彼が同じブラウザを使用するまで、ウィンドウを閉じる、またはタブは問題になりません。このために、quoraのようにログアウトするオプションを与えないでください。また、クッキーの有効期限を非常に長く設定します。 – sprksh

+0

それ以外の場合は、ブラウザでCookieが有効になっているかどうかを確認してください。そうでない場合は、許可しないでください。そのためのデコレータを作る – sprksh

関連する問題