我正在使用它来登录用户:
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))
我希望 session 在 5 分钟后过期,因此我在上面的 View 中添加了 request.session.set_expiry(300)
。但是 session 永远不会过期。我做错了什么?
最佳答案
有两个参数可以使 session 过期,SESSION_EXPIRE_AT_BROWSER_CLOSE和 SESSION_COOKIE_AGE . 如果你想在 5 分钟后过期,你的设置应该如下:
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_COOKIE_AGE = 5 * 60
将两者结合起来学习如何编写自定义中间件 "Is there a way to combine behavior of SESSION_EXPIRE_AT_BROWSER_CLOSE and SESSION_COOKIE_AGE"
关于python - 如何在 5 分钟内使 Django session 过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830669/