如何从 Django 在前端获取 CSRF 令牌以及如何在 Postman 中使用它

Posted

技术标签:

【中文标题】如何从 Django 在前端获取 CSRF 令牌以及如何在 Postman 中使用它【英文标题】:How to get CSRF token in frontend from Django and how to use it in Postman 【发布时间】:2021-10-07 20:56:59 【问题描述】:

我是 Django 的新手,假设我有一个单独的前端(比如 Angular 或 react)和后端(Django)。现在要从前端访问我的 API,我们需要一个 CSRF 令牌。

我该如何解决这个问题?提供获取 CSRF 令牌的 API 不会违背 CSRF 令牌本身的目的吗?我还在文档中看到,通过使用@ensure_csrf_cookie,我们可以强制在 cookie 中设置 CSRF 令牌,然后在客户端使用 javascript 脚本获取它(这不应该被视为安全威胁吗?如果 CSRF 令牌是在 cookie 中很容易获得)。

我正在尝试了解 CSRF 令牌的工作原理,如果我的理解有误,请见谅。

我还想从 Postman 测试我的 API,但我还需要在请求中传递 csrf 令牌,关于如何生成 csrf 令牌以便我可以在我的 API 测试中使用的任何建议?

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

对于在邮递员中发送 csrf 令牌,我认为这个问题的答案可以帮助How do I send spring csrf token from Postman rest client?

,要了解 csrf token 的真正工作原理,你可以参考 django 提供的官方文档,它会让你对它有一个正确的理解。

【讨论】:

感谢 Mohamed 提供的信息。我还有一些问题,我已经编辑了帖子,你能看一下吗?

以上是关于如何从 Django 在前端获取 CSRF 令牌以及如何在 Postman 中使用它的主要内容,如果未能解决你的问题,请参考以下文章

如何将 POST 数据中的 CSRF 令牌传递给 Django?

ReactJS 和 Django:如何以正确的方式使用 axios 发送 csrf 令牌?

如何以及在何处生成 CSRF 令牌以通​​过 REST API 向 Django 应用程序发出请求?

你如何在 django rest 框架中实现 CSRF 令牌?

如何将 CSRF 令牌从 AngularJS 前端发送到 Spring REST 服务后端?

CSRF 令牌上的 Django 错误