Ich arbeite an einer Website, die uns nach N Minuten der Inaktivität einen Benutzer abmeldet. Gibt es dafür Best Practices mit Django?Benutzer aus einer Django-Site nach N Minuten Inaktivität protokollieren
Antwort
Werfen Sie einen Blick auf die session middleware und seine Einstellungen. Insbesondere diese beiden:
SESSION_COOKIE_AGE
Default: 1209600 (2 Wochen, in Sekunden)
Das Alter der Session-Cookies, in Sekunden.
SESSION_SAVE_EVERY_REQUEST
Default: False
Ob die Sitzungsdaten auf jede Anfrage zu speichern. Wenn dies Falsch (Standard) ist, dann werden die Sitzungsdaten nur gespeichert, wenn sie geändert wurden - das heißt, wenn einer ihrer Wörterbuchwerte zugewiesen oder gelöscht wurde.
eine niedrige SESSION_COOKIE_AGE
Einstellung und SESSION_SAVE_EVERY_REQUEST
Einschalten sollte „gleitende“ Ablauf erstellen arbeiten.
Versuchen Sie die Einstellung settings.SESSION_COOKIE_AGE auf N * 60 Sekunden.
http://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-age
Wenn Sie das Sitzungscookie-Alter in der Middleware der Django-Sitzung festlegen, wird nur die Verfallszeit im Header des Set-Cookies festgelegt, der an den Browser zurückgegeben wird. Es ist nur die Browserkonformität mit der Ablaufzeit, die das "Abmelden" erzwingt.
Abhängig von Ihren Gründen für das Abmelden im Leerlauf halten Sie die Einhaltung der Ablaufzeit durch den Browser möglicherweise nicht für ausreichend. In diesem Fall müssen Sie die Session-Middleware erweitern, um dies zu tun.
Zum Beispiel können Sie eine Ablaufzeit in Ihrer Session-Engine speichern, die Sie mit Anfragen aktualisieren. Abhängig von der Art des Datenverkehrs zu Ihrer Site möchten Sie möglicherweise nur einmal in X Sekunden auf das Sitzungsobjekt zurückschreiben, um übermäßige Schreibvorgänge zu vermeiden.
Das scheint in Django 1.4 nicht zu stimmen. Der Set-Cookie-Header, den ich vom Server zurückbekomme, sieht folgendermaßen aus: 'Set-Cookie = csrftoken = ... sessionid = 365ede0dd7038cc70796f9f724bc21b6; httponly; Pfad =/'Es hat keine Ablaufzeit, daher muss der Ablauf auf der Serverseite erzwungen werden. – Nathan
Schön, dass die Session-Middleware verbessert wurde. Ich bin mir nicht sicher, was ich mit dieser Antwort tun soll, die zu der Zeit genau war. – MattH
Ich denke, es ist in Ordnung, Ihre Antwort so zu lassen, wie sie ist, weil sie zum Zeitpunkt des Schreibens korrekt war. – Nathan
- 1. Protokollieren von Webseitenaufrufen nach Benutzer
- 2. PHP Abmeldung von 10 Minuten Inaktivität nicht
- 3. Fehler 413 anfordern Entität zu groß bei Verwendung von SSL nach ein paar Minuten Inaktivität
- 4. .NET-Anwendung sehr langsam nach längerer Inaktivität
- 5. Leistungsprobleme beim Aufruf von java.beans.Introspector.getBeanInfo nach Inaktivität
- 6. Google Chrome Inaktivität Umleitung
- 7. Gruppierung alle n Minuten mit dplyr
- 8. vb.net Minuten aus einer Datei lesen
- 9. Suche nach 'n' häufigsten Wörtern aus einer Datei mit Java?
- 10. Wie Timer einstellen eine Funktion alle n Minuten anrufen?
- 11. Azure Notification Hub-Registrierung aus App-Backend und App-Inaktivität
- 12. django Benutzer erstellen und protokollieren sie in
- 13. Google Analytics - weniger als n Minuten her
- 14. Get Last N Minuten Datensätze Dynamodb Streams
- 15. PSQL-Filter nach Zeitstempel Feld nach Minuten
- 16. automatische Abmeldung von simple-ember-auth/oauth2-server nach Inaktivität
- 17. Android Inaktivität Timer
- 18. Android - wie Taste nach einigen Sekunden der Inaktivität zu verbergen
- 19. Abmeldung nach einer bestimmten Zeit
- 20. Socket.io prüfen auf Inaktivität außer Heartbeat von Client
- 21. Warte-Logik für Inaktivität
- 22. Anrufe nach dem Auflegen auf Smartphones protokollieren
- 23. libgdx Probleme mit Make-Maus wieder nach Sekunden der Inaktivität
- 24. Wie lösche ich eine Tabelle nach einem Zeitraum der Inaktivität?
- 25. In Django, wie wird request.session.set_expiry verwendet, um Benutzer nach Leerlauf abzumelden?
- 26. So aktualisieren Sie den MPNS-Kanal-URI nach App-Inaktivität
- 27. Inaktivität Abmeldung in Aurelia App
- 28. Inaktivität, Trennen von AppMeasurementService
- 29. Code Sendmail() Mail empfangen nach 5 Minuten
- 30. Count Wörter aus einer Zeichenkette enthält \ n
Dank McNearney. Heute habe ich mein Problem mit Ihrem Post gelöst. –