生产环境 Django

时间:2021-01-28 10:07:52

标签: django csrf pythonanywhere django-csrf payu

我正在使用 Django v2.2.8 和 python 3.6.9。 我的支付网关依赖于我指定的 url,即 https://example.com/successhttps://example.com/failure 交易后。 但是,我在处理这些 url 的视图上使用了 csrf_exempt,这在本地环境中工作正常,但在生产中它给出了 403 forbidden csrf 验证失败。

即使禁用整个 CSRF 中间件,错误仍然存​​在。

views.py

@csrf_exempt
def payu_failure(request):
    data = {k: v[0] for k, v in dict(request.POST).items()}
    response = payu.verify_transaction(data)
    return JsonResponse(response)

来源https://github.com/renjithsraj/paywix/blob/master/PAYU.md

settings.py

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

urls.py 有正确的配置

path('failure', views.payu_failure, name='payu_failure'),

0 个答案:

没有答案
相关问题