如何豁免CSRF保护上使用direct_to_template(How to exempt CSRF

2019-06-26 11:47发布

我在我的Django应用程序的流程中,我将用户重定向到另一个服务(如贝宝),这之后它自己的一些处理,返回用户回到我自己的服务器上。 我的服务器上的返回地点是我渲染使用使用direct_to_template一个简单的HTML成功页面。

对于一些奇怪的原因,其他的服务器发送POST请求,因此用户将看到一个CSRF令牌丢失的错误与其他服务器不发送回任何CSRF令牌。

如何免除CSRF令牌的使用direct_to_template看法?

Answer 1:

您可以使用csrf_exempt装饰禁用CSRF保护特定视图。

假设您的网址模式是:

('^my_page/$', direct_to_template, {'template': 'my_page.html'})

以下导入添加到您的urls.py

from django.views.decorators.csrf import csrf_exempt

然后将URL模式:

('^my_page/$', csrf_exempt(direct_to_template), {'template': 'my_page.html'})


Answer 2:

您可以使用@csrf_exempt装饰到excempt CSRF令牌这一点,你必须导入

from django.views.decorators.csrf import csrf_exempt

然后写@csrf_exempt你的观点之前,

这将正常工作:)



文章来源: How to exempt CSRF Protection on direct_to_template
标签: django csrf