如何从 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 令牌?