我对flask后端的POST请求仅在JWT_COOKIE_CSRF_PROTECT = False时有效,但GET请求有效
设定:
CSRF_ENABLED = True
CORS_SUPPORTS_CREDENTIALS = True
JWT_TOKEN_LOCATION = ['cookies']
我从Vue应用程序通过axios访问 flask
const path1 = `/limit_engine/balance`;
axios
.post(path1, { withCredentials: true })
.then((response) => {
console.log(response.data["balance"]);
})
.catch((error) => {
console.error(error);
});
https://flask-jwt-extended.readthedocs.io/en/stable/options/#jwt-cookie-csrf-protect 建议JWT_COOKIE_CSRF_PROTECT在生产中应始终为True,因此我不能将其保留为False
2条答案
按热度按时间cmssoen21#
如果您是从浏览器发送请求,您可以使用任何开发工具(例如Chrome)。查看“网络”选项卡,查找您的POST请求,找出发送了哪些Cookie。
如果您在请求中找不到CSRF令牌,则应将其从后端传递到前端,并将其保存在Cookie存储中。
new9mtju2#
您可以为请求添加csrf异常。
或遵循:-https://flask-jwt-extended.readthedocs.io/en/3.0.0_release/tokens_in_cookies/