2011-01-05 7 views
1

Ich möchte Benutzer nach einiger Zeit der Inaktivität protokollieren. Diese Frage (Logging users out of a Django site after N minutes of inactivity) hat eine vernünftig aussehende Antwort.In Django, wie wird request.session.set_expiry verwendet, um Benutzer nach Leerlauf abzumelden?

Aber ich würde gerne verstehen, was unterscheidet request.session.set_expiry von SESSION_COOKIE_AGE. Ersteres scheint den Benutzer nach einem festgelegten Zeitraum unabhängig von der Aktivität abzumelden. Ist das nicht auch das, was SESSION_COOKIE_AGE macht, wenn SESSION_SAVE_EVERY_REQUEST False ist?

Antwort

1

Von dem, was ich sagen kann, überschreibt request.session.set_expiry einfach die SESSION_COOKIE_AGE Einstellung für diese bestimmte Sitzung. Mit SESSION_SAVE_EVERY_REQUEST = False (der Standard), würde es keinen funktionalen Unterschied geben.

In beiden Fällen wird Sitzungsaktivität aus der Basis, wenn die Sitzung wurde zuletzt geändert (es sei denn SESSION_SAVE_EVERY_REQUESTTrue ist, in welchem ​​Fall es auf jede Anforderung gespeichert wird, so ist es auf jede Anfrage effektiv modifiziert)

Ein Beispiel Wenn Sie möchten, dass Benutzer in einem bestimmten Abschnitt Ihrer Anwendung einen längeren Sitzungsablauf haben, können Sie request.session.set_expiry mit einem benutzerdefinierten Wert in den Sichten für diese Anwendung verwenden und sie dann mit request.session.set_expiry(SESSION_COOKIE_AGE) zurücksetzen, wenn sie diesen bestimmten Abschnitt verlassen.

Verwandte Themen