让Django从Cookie中检查csrftoken而不是POST数据或标题

时间:2016-09-08 15:03:29

标签: ajax django cookies django-csrf

我在api.mysite.comother.mysite.com的前端有api,需要AJAX才能工作,理想情况下是CSRF保护。

我可以从XHR获得csrftoken,并设置cookie。当我使用withCredentials: true创建另一个XHR时,新的XHR会在csrftoken标头中发送Cookie

但似乎Django CsrfViewMiddleware仅检查csrftoken是在POST数据中,还是在x-csrftoken标题中。它不会检查cookie(如果我没有弄错的话)。

我的问题是,Javascript无法从Cookie中读取csrftoken,因为它是来自其他网站的Cookie。

我看到两个解决方案:

  • 获取XHR以获取身体中的csrftoken。当我登陆网站时,这有效,但csrftoken可以更改(如果我退出并且我相信)

  • 让Django从cookie中读取csrftoken。这是我理想的目标。

我将如何做到这一点?

0 个答案:

没有答案