如何使用 Postman 对 Django REST Framework 进行身份验证

How to Use Postman to Authenticate to Django REST Framework

我正在尝试弄清楚如何使用 Postman 对 Django REST Framework 进行身份验证。我有一个邮递员拦截器。但无论我尝试什么,我似乎都会收到 403 - CSRF 验证失败。请求已中止。

在chrome中,我转到了DRF的默认登录点。我输入用户名和密码,然后单击提交。它适用于 Chrome。使用拦截器,我可以看到 POST。现在,如果我在 Postman 中尝试 exact same POST,我会收到 403 CSRF 错误。这怎么可能呢? Postman 所做的与 chrome 所做的完全相同。它怎么会产生不同的结果?

这是我从 Chrome...

登录

这是我和邮递员做的*完全相同的事情*...

我错过了什么?我一直在阅读有关执行 GET 请求的信息,查看 set-cookie csrf 令牌和值,并将其放入我的 POST 请求的 header 中。我试过了,我能想到的每一种变体都无济于事。

首先,使用 Postman 向 /api/auth/login/ URL(登录页面)发送 HTTP GET 请求。 这一步对于从响应中获取 csrftoken 很重要。

  • 在 HTTP GET 请求之前

  • 发送 HTTP GET 请求后,您将收到一个 csrftoken cookie,如下所示,

  • 在下一个 HTTP POST 请求中使用这个值,方法是在请求中设置它 header。


或者,您可以使用 将 csrf 令牌连同 form-data 而不是 header 一起发送csrfmiddlewaretoken键。