私のDjangoアプリケーションでは、30分間操作がないとユーザーが自動的にログアウトされるようにしたいので、settings.pyでこの設定を使用しました。
SESSION_COOKIE_AGE = 1800
ただし、この設定を使用すると、アクティビティに関係なく、ユーザーは30分でログアウトされます。Djangoアプリケーションが非アクティブであるために自動ログアウトを強制するにはどうすればよいですか?
私のDjangoアプリケーションでは、30分間操作がないとユーザーが自動的にログアウトされるようにしたいので、settings.pyでこの設定を使用しました。
SESSION_COOKIE_AGE = 1800
ただし、この設定を使用すると、アクティビティに関係なく、ユーザーは30分でログアウトされます。Djangoアプリケーションが非アクティブであるために自動ログアウトを強制するにはどうすればよいですか?
このトピックの更新として。DjangoにSESSION_SAVE_EVERY_REQUEST設定が追加され、非常に簡単になりました。
django-session-securityは、サーバー側のユーザーアクティビティと、mousemove、keypressなどのjavascriptイベントを記録します...また、セッションを期限切れにする前にユーザーに警告し、セッションを期限切れにしないようにします(アクティビティはおそらく別のブラウザタブからですか?)
インストールして設定するだけsettings.SESSION_SECURITY_EXPIRE_AFTER=1800
です。を設定することもできますsettings.SESSION_SECURITY_WARN_AFTER=1740
。
ユーザーがサイトにアクセスしたときに、ユーザーのセッションを更新できます。たとえば、ミドルウェアでは、この強制セッションが再度設定されます。
class ActivateUser(object):
def process_request(self, request):
if request.user.is_authenticated():
request.session.modified = True