到目前为止,我的应用程序运行良好,所有操作都是通过访问其公共 IP 来完成的。
现在,它被添加到主站点,名称为 app.mainsite.com。
这样就可以访问了。我可以登录等等一切。
但我的应用程序有点特别,它的某个功能允许用户在任何第三方网站的 iframe 中打开其 URL 之一,其中该应用程序的脚本嵌入在 html 中,以便在这些第三方网站上执行一些特定于应用程序的活动派对网站。现在,每个人都可以看到该应用程序为第三方网站带来的新内容,但要更改一些设置,必须登录我的应用程序。如果没有,用户将被重定向到模式本身内部,如果登录成功,他们将被重定向到设置编辑页面。基本上,来自第三方网站的任何写入请求都需要网站所有者登录我们的应用程序。他们可以在模式内登录,或者从另一个选项卡登录,然后刷新其网站以便能够进入编辑视图。
问题是,早些时候,一切都很顺利。
现在,我可以使用 app.mainsite.com 中的 csrf 令牌进行表单发布,但是当它在 iframe 中打开时,它会抛出CSRF cookie not set
.
我检查了“资源”选项卡,在该选项卡下,csrftoken
app.mainsite.com 中的不匹配csrfmiddlewaretoken
在形式中。
显然,CSRF 失败了。
我怎样才能克服这个问题?
我尝试设置CSRF_COOKIE_DOMAIN='.mainsite.com'
但这没有用。
我能做些什么?
您可以尝试在提供响应的视图周围添加 @csrf_exempt 装饰器...但是当然,这将禁用 CSRF 验证...
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def your_view(request):
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)