views.pyDjango: csrf_exempt не работает, когда другой запрос отправки сервера?
class OrderPayCheckView(View):
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(OrderPayCheckView, self).dispatch(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return redirect(reverse("home"))
Я использовал третью стороннего сервиса (я клиент), и он посылает своего рода Notification request(POST)
в OrderPayCheckView
.
Поскольку это POST request
не из моего приложения, я думал, что этот вид должен быть украшен csrf_exempt
, так что он больше не требует csrf token
.
Когда я проверил с POSTMAN
, он работает очень хорошо: он отображает страницу перенаправленных шаблонов как тело ответа.
Однако, когда эта служба третьей стороной (сервер) пытался отправки POST
запрос на этой точке зрения, он показывает CSRF-маркер ошибки аутентификации, как это:
(Поскольку ошибки на корейском языке, перевожу его)
REQUEST HTTP BODY : imp_uid=imp_1234567890&merchant_uid=merchant_1234567890&status=ready
REQUEST HTTP STATUS : 403
REQUEST HTTP BODY :
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="robots" content="NONE,NOARCHIVE">
<title>403 Forbidden</title>
</head>
<body>
<div id="summary">
<h1>Forbidden <span>(403)</span></h1>
<p> CSRF authentication failed. </p>
<p> The reason this message shown up is that this https site require "reference header" from your browser, but didn't receive anything abuout it. This header is required for security.</p>
</div>
</body>
</html>
Что в этом плохого? Должен ли отправитель добавить к нему запрос reference header
?
Спасибо, но все еще не работает ... – user3595632
Эта услуга должна попадание более чем одной конечной точки. Проверьте журналы своего веб-сервера. – OregonTrail
Что вы подразумеваете под «ударом более одной конечной точки»? Я использую 'gunicorn', но ничто не появляется в журнале – user3595632