gpt4 book ai didi

javascript - 从 Node js 到 django 的 csrf 问题

转载 作者:搜寻专家 更新时间:2023-11-01 00:06:38 26 4
gpt4 key购买 nike

我想将 csrftoken 从 node.js 传递到 django。我的 server.js 中有这段代码

socket.on('unread global', function (data) { 
var values=querystring.stringify();

var options = {
hostname:'localhost',
port:'8000',
path:'/chat/global_unread/',
method:'POST',
headers:{
'Content-Type':'application/x-www-form-urlencoded',
'Cookie': 'csrftoken=' + data.csrf,
'Content-Length':values.length
}
}

我的数据来自调用我的 server.js 的 jquery 函数

var datos = { // datos is the data that will be send to Node.js

user: USER_PK_CHAT,
csrf : window.CSRF_TOKEN

};

socket.emit('unread global', datos);

但最后我的控制台总是出现同样的错误

失败原因:

CSRF token missing or incorrect.

一般来说,当存在真正的跨站请求伪造时,或者当

对于 POST 表单,您需要 确保:

您的浏览器正在接受 cookies...等等有人可以帮助我吗?

最佳答案

CSRF 中间件查找以下 COOKIE:

request.COOKIES[settings.CSRF_COOKIE_NAME]

并将其与 POST csrfmiddlewaretoken 进行比较。

因此您必须确保对 Node 的调用在以下位置设置了正确的 cookie 名称:

'Cookie': 'csrftoken=' + data.csrf`

此外,POST 包含一个 csrfmiddlewaretoken。在 javascript 中访问 COOKIE 并将其作为正确的 token 发送是安全的,只需确保使用 CSRF_COOKIE_SECURE。比较好的办法通常是让django把token作为输入域,单独设置cookie。

关于javascript - 从 Node js 到 django 的 csrf 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com