【发布时间】:2020-02-10 18:56:41
【问题描述】:
谁能指导我在使用 Fetch 时如何使用 Flask-WTF CSRF 保护? API 文档似乎并不清楚如何处理每个请求生成的 CSRF 令牌
我不断收到此错误
The CSRF session token is missing.
还有我的 javascript 代码:
let payload = {
// some data,
"X-CSRFToken": csrf_token
}
let header = { 'content-type': 'application/json','accept': 'application/json',"X-CSRFToken": csrf_token}
paypal.Buttons({
createOrder: function(data, actions) {
return fetch(prefix.concat("/payment/paypalCreate"), {
method: "POST",
headers: header ,
body:JSON.stringify(payload),
credentials: 'same-origin',
})
.then(function(res) {
return res.json();
}).then(function(data) {
console.log(typeof(data))
return data.id
})
.catch(err => {
console.log(err);
});
}
【问题讨论】:
-
您必须将 CSRF 令牌添加到您的请求中,如 flask-wtf.readthedocs.io/en/stable/… 中所述。
-
@KlausD。我确实做到了。似乎它正在检查会话数据。是否还需要在会话中设置 CSRF 令牌?错误指出“缺少 CSRF 会话令牌”。
标签: python flask csrf flask-wtforms