Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Django remember-me functionality using a separate token

branch: master
README.rst

Django auth remember app

https://travis-ci.org/ailabs/django-auth-remember.png?branch=master

django-auth-remember supports Django 1.4.10 and later on Python 2.6 and 2.7.

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_CLASSES = (
    ...
    '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.

More information

See:

TODOs

  • Introduce settings for AUTH_REMEMBER_COOKIE_DOMAIN
Something went wrong with that request. Please try again.