Dans mon application Django, j'aimerais que l'utilisateur soit automatiquement déconnecté après 30 minutes d'inactivité, donc j'ai utilisé ce paramètre dans Paramètres.py:
SESSION_COOKIE_AGE = 1800
p>HOWEver, en utilisant ceci. La définition enregistre l'utilisateur dans 30 minutes indépendamment de l'activité. Comment appliquer une déconnexion automatique en raison d'une inactivité dans une application Django? P> p>
3 Réponses :
Vous pouvez mettre à jour la session d'un utilisateur lorsqu'il accède à votre site. Par exemple, dans un middleware, cette session de force doit être réglée à nouveau.
class ActivateUser(object): def process_request(self, request): if request.user.is_authenticated(): request.session.modified = True
Cela rend la mise à jour de la DB sur chaque demande. Pourrait affecter les performances.
@Tomaszwysocki Considérant utiliser le cache Backend ou Redis Backend puis
Merci! Droite, il fait une demande de DB à chaque fois, mais cela fonctionne. Optimisation prématurée de côté, c'est fiable :)
Django-session-Security note l'activité utilisateur basée sur des événements côté serveur et javascript tels que MouseMove, KeyPress, etc, etc ... En outre, il avertit l'utilisateur avant d'expirer la session et essaie Il suffit d'installer et de définir Paramètres.Session_Security_Expire_After = 1800 code>. Vous pouvez également définir
paramètres.session_security_warn_after = 1740 code>. P>
comme une mise à jour sur ce sujet. Django a maintenant le session_save_every_request définition qui le fait beaucoup plus facile. p>
En double possible de Journalisation des utilisateurs d'un Django Site après N minutes d'inactivité