使用DRF中的TokenAuthentication对Web前端进行身份验证。我们的情况是,由于使用不同的URL访问同一网站,CSRF cookie有时会变得无效。因为用户需要在他们再次登录之前清除cookie(所有预期的行为)。
想要通过在django设置中设置CSRF_FAILURE_VIEW
值来删除使用Django的Cookie,并拥有一个调用request.session.delete()
的自定义视图
但是...
DRF会覆盖Django类_reject
的函数CsrfViewMiddleware
,这意味着永远不会访问设置CSRF_FAILURE_VIEW
。
class CSRFCheck(CsrfViewMiddleware):
def _reject(self, request, reason):
# Return the failure reason instead of an HttpResponse
return reason
关于如何解决这个问题的任何想法?