这种情况在其他帖子中已有介绍,但是在大多数情况下,解决方案已经过时,仅适用于基于功能的视图。
我的问题很简单: 现在,我的应用使用以下参数在Django网站上强制执行会话超时:
SESSION_SAVE_EVERY_REQUEST = True
SESSION_COOKIE_AGE = 600
大多数视图都使用LoginrequiredMixin。 它工作正常,但使用AJAX显然不起作用。在Internet上找到的常见解决方案是将身份验证控制的行为更改为返回403。是否可以替代LoginRequiredMixin来针对Ajax请求这样做?或者也许只是放弃,并在客户端完全使用javascript做到这一点?
答案 0 :(得分:1)
尝试这样
class MyView(LoginRequiredMixin, View):
def handle_no_permission(self):
if not self.request.is_ajax():
return super().handle_no_permission()
return JsonResponse({
'code': 'Auth Required',
'message': 'Session timeout!'
}, status=401)