Saltar al contenido

¿Cómo caducar la sesión de Django en 5 minutos?

Solución:

Hay dos parámetros para caducar sesiones, SESSION_EXPIRE_AT_BROWSER_CLOSE y SESSION_COOKIE_AGE. Si desea caducar en 5 minutos, su configuración debería ser la siguiente:

SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_COOKIE_AGE = 5 * 60 #

Para combinar ambos, aprenda cómo escribir su middleware personalizado “¿Hay alguna manera de combinar el comportamiento de SESSION_EXPIRE_AT_BROWSER_CLOSE y SESSION_COOKIE_AGE”

Actualización para Django 1.6

El siguiente código de middleware no funciona en Django 1.6 y versiones superiores debido a json serializable. Para que funcione en todas las versiones de Django, coloque el serializador de sesión.

settings.py

#Handle session is not Json Serializable
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

La muestra anterior de serializador es para Django 1.6. Por favor busque otra versión. Gracias…

Crear middleware.py

from datetime import datetime, timedelta
from django.conf import settings
from django.contrib import auth


class AutoLogout:
  def process_request(self, request):
    if not request.user.is_authenticated() :
      #Can't log out if not logged in
      return

    try:
      if datetime.now() - request.session['last_touch'] > timedelta( 0, settings.AUTO_LOGOUT_DELAY * 60, 0):
        auth.logout(request)
        del request.session['last_touch']
        return
    except KeyError:
      pass

    request.session['last_touch'] = datetime.now()

Actualiza tu settings.py:

MIDDLEWARE_CLASSES = [
    .........................

    'app_name.middleware.AutoLogout', 
]

# Auto logout delay in minutes
AUTO_LOGOUT_DELAY = 5 #equivalent to 5 minutes

Django 1.9

Edita tu settings.py y agregue lo siguiente:

# SESSION AGE 5 Minutes
SESSION_COOKIE_AGE = 5*60
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *