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

Ste*_*ell 8 rest http csrf django-rest-framework postman

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

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

这是我从 Chrome 登录...

在此处输入图片说明

这是我和邮递员做*完全相同的事情*... 在此处输入图片说明

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

JPG*_*JPG 10

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

  • 在 HTTP GET 请求之前

    在 HTTP GET 请求之前

  • 发送 HTTP GET 请求后,您将收到csrftoken如下 cookie, HTTP 获取响应

  • 通过在请求标头中设置它,在下一个HTTP POST请求中使用此值。 HTTP 发布请求


或者,您可以使用密钥将 csrf 令牌与表单数据一起发送,而不是发送标头csrfmiddlewaretoken

使用表单数据进行身份验证