Django 2.0 ipn callback =>尽管@csrf_exempt,禁止(CSRF cookie未设置)

时间:2018-03-13 22:49:42

标签: django django-csrf

我使用Django 2.0,我想在我的网址http://example.com/ipn/上接受来自远程第三方的IPN

这是我的网址:

urlpatterns = [
    ...
# url for ipn
    url(r'^ipn/$', views.index, name='ipn'),
    ...
]

这是我的观点:

# decorator
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def ipn(request):
    ''' process ipn call from merchant'''
    ipn = get_data_from_ipn(request)

在我的settings.py中:

ALLOWED_HOSTS = ['ipnsender.net']
...

我想只有ipn视图不使用csrf,但我无法理解为什么我确实有以下错误,尽管文档只告诉你需要@csrf_exempt装饰器。

我的日志每次都告诉我:

Forbidden (CSRF cookie not set.): /ipn/
[13/Mar/2018 22:36:50] "POST /ipn/ HTTP/1.1" 403 2868

1 个答案:

答案 0 :(得分:1)

您在index内使用ipn而非urls.py功能来处理/ipn/

url(r'^ipn/$', views.ipn, name='ipn'),