【发布时间】:2022-02-20 00:15:19
【问题描述】:
我写了一个自定义的认证,并在认证过程中添加了一个csrf检查中间件。 我在身份验证函数中调用了下面的函数。
def enforce_csrf(self, request):
"""
Enforce CSRF validation
"""
check = CSRFCheck()
check.process_request(request)
reason = check.process_view(request, None, (), {})
if reason:
# CSRF failed, bail with explicit error message
raise PermissionDenied('CSRF Failed: %s' % reason)
CSRFCheck() 函数是一个自定义中间件,看起来像这样。
class CSRFCheck(CsrfViewMiddleware):
def _reject(self, request, reason):
return reason
现在,当我尝试处理需要身份验证的请求时,出现错误:
TypeError: init() missing 1 required positional argument: 'get_response'
相同的代码在 Django 3.2 中完美运行
【问题讨论】:
标签: python django django-rest-framework csrf