这是一个主意…在该
SESSION_EXPIRE_AT_BROWSER_CLOSE设置下,关闭浏览器上的会话。然后像这样在每个请求的会话中设置时间戳。
request.session['last_activity'] = datetime.now()
并添加中间件以检测会话是否已过期。这样的事情应该处理整个过程…
from datetime import datetimefrom django.http import HttpResponseRedirectclass SessionExpiredMiddleware: def process_request(request): last_activity = request.session['last_activity'] now = datetime.now() if (now - last_activity).minutes > 10: # Do logout / expire session # and then... return HttpResponseRedirect("LOGIN_PAGE_URL") if not request.is_ajax(): # don't set this for ajax requests or else your # expired session checks will keep the session from # expiring :) request.session['last_activity'] = now然后,你只需要创建一些url和视图即可将有关会话到期的相关数据返回给ajax调用。
当用户选择“更新”会话时,可以这么说,你要做的只是
requeset.session['last_activity']再次设置为当前时间
显然,这段代码只是一个开始……但它应该使你走上正确的道路



