【发布时间】:2017-08-02 22:18:01
【问题描述】:
我试图弄清楚如何使用 Postman 对 Django REST 框架进行身份验证。我有一个邮递员拦截器。但无论我尝试什么,我似乎都得到了 403 - CSRF 验证失败。请求中止。
在 chrome 中,我转到 DRF 的默认登录点。我输入用户名和密码,然后单击提交。它适用于 Chrome。使用拦截器,我可以看到 POST。现在,如果我在 Postman 中尝试 完全相同 POST,我会收到带有 CSRF 错误的 403。这怎么可能呢? Postman 所做的与 chrome 所做的完全一样。它怎么会产生不同的结果?
这是我从 Chrome 登录...
我错过了什么?我一直在阅读有关执行 GET 请求的信息,查看 set-cookie csrf 令牌和值,并将其放在我的 POST 请求的标头中。我已经尝试过了,我能想到的所有变体都无济于事。
【问题讨论】:
-
所以在我发布这篇文章几秒钟后,我当然明白了。问题是标题需要是“X-CSRFToken”而不仅仅是“csrftoken”。这似乎很令人困惑,并且显然是假设的知识......尽管如此,我仍然不明白为什么完全相同的 POST 在 chrome 中工作而不是邮递员。 chrome 不是必须设置该标题才能使其帖子正常工作吗?但它不在 chrome 发送的标题中。
标签: rest http django-rest-framework csrf postman