我正在使用它来登录用户:
def login_backend(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
request.session.set_expiry(300)
return HttpResponseRedirect('/overview/')
else:
return HttpResponseRedirect('/login_backend/')
else:
return render_to_response('login_backend.html', context_instance=RequestContext(request))
我希望会话在 5 分钟后过期,因此我在上面的视图中添加了 request.session.set_expiry(300)
。但是会话永远不会过期。我究竟做错了什么?
原文由 pynovice 发布,翻译遵循 CC BY-SA 4.0 许可协议
Django 1.6 更新
由于 json 可序列化,下面的中间件代码在 Django 1.6 及以上版本中不起作用。为了让它在所有版本的 Django 中工作,请放置会话序列化程序。
设置.py
上面的序列化程序示例适用于 Django 1.6。请搜索其他版本。谢谢…
创建 中间件.py
更新你的 settings.py :