django-auth-remember
supports Django 1.11 on Python 2.7.
Earlier Django versions or later Python versions might also work, but are not tested.
Add the auth_remember authentication backend to django:
AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'auth_remember.backend.AuthRememberBackend', )
Add the remember middleware in your settings, right after AuthenticationMiddleware:
MIDDLEWARE = [ ... 'django.contrib.auth.middleware.AuthenticationMiddleware', 'auth_remember.middleware.AuthRememberMiddleware', ... ]
Add auth_remember to INSTALLED_APPS:
INSTALLED_APPS = ( 'auth_remember', )
Set the cookie name and expire time (optional):
AUTH_REMEMBER_COOKIE_NAME = 'remember_token' AUTH_REMEMBER_COOKIE_AGE = 86400 * 28 # 4 weeks by default
Set the expire time of the session to browser close (optional):
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
To remember a user add the following code to your authentication handler:
from auth_remember import remember_user remember_user(request, user)
Use the user.is_fresh attribute to test if the user is fresh:
{% if user.is_fresh %} This user session is fresh {% else %} This user session is NOT fresh {% endif %}
Under the hood auth_remember uses the session var AUTH_REMEMBER_FRESH
to
indicate if the user session is fresh. The name of the session var can be
changed by setting the AUTH_REMEMBER_SESSION_KEY
in you're settings file.
- See:
- Introduce settings for AUTH_REMEMBER_COOKIE_DOMAIN