我用它来登录用户:
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)
在上面的视图中。但会话永远不会过期。我究竟做错了什么?
有两个参数可以使会话过期,SESSION_EXPIRE_AT_BROWSER_CLOSE https://docs.djangoproject.com/en/dev/ref/settings/#session-expire-at-browser-close and SESSION_COOKIE_AGE https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-SESSION_COOKIE_AGE。
如果您想在 5 分钟后过期,您的设置应如下所示:
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_COOKIE_AGE = 5 * 60
将两者结合起来,了解如何编写自定义中间件“有没有办法结合 SESSION_EXPIRE_AT_BROWSER_CLOSE 和 SESSION_COOKIE_AGE 的行为” https://stackoverflow.com/questions/9267957/is-there-a-way-to-combine-behavior-of-session-expire-at-browser-close-and-sessio
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)