Remember Me (Persistent Sessions)
A snippet showing how to add persistent login sessions with 'remember me'.
# views.py
from django.contrib.auth import authenticate, login
from django.shortcuts import render, redirect
def login_view(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
remember = request.POST.get('remember_me') # checkbox value
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
if not remember:
request.session.set_expiry(0)
return redirect('home')
return render(request, 'login.html')
# templates/login.html
<h2>Login</h2>
<form method="POST">
{% csrf_token %}
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<label><input type="checkbox" name="remember_me"> Remember Me</label>
<button type="submit">Login</button>
</form>
Explanation:
-
The
remember mecheckbox allows users to stay logged in even after closing the browser. -
If the checkbox is not selected,
request.session.set_expiry(0)makes the session expire when the browser closes. - When selected, the session uses the default expiry (usually 2 weeks) set in Django settings.
-
You can customize session duration using
SESSION_COOKIE_AGEinsettings.py.
- Category Authentication & Authorization
- Total Views 1322
- Last Modified 15 November, 2025
- Tags #sessions #auth #cookies #login
Previous snippet
Change Password with PasswordChangeView
Next snippet