node.js - 通过websocket发送cookie

我目前正在项目中使用node.js websocket </ code>模块。 在我的浏览器中有 PHPSESSID </ code>但在websocket的请求标题中没有</ p>

  Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en- US,en; q = 0.8,ka; q = 0.6,ru; q = 0.4
缓存 - 控制:无缓存
连接:升级
主机:someHost
原点:someOrigin
Pragma:no-cache

Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits
Sec-WebSocket-Key:0Hq9BZfHAxIMbfu3cJpWyg ==
Sec-WebSocket-Protocol:echo-protocol
Sec-WebSocket-Version:13
升级:websocket
用户代理:Mozilla / 5.0(Windows NT 5.1) )AppleWebKit / 537.36(KHTML,像Gecko)Chrome / 47.0.2526.106 Safari / 537.36
</ code> </ pre>

我已在服务器端代码中检查了它</ p>

wsServer.on('request',function(request){
console.log(request.cookies);
});
</ code> </ pre>
\ n

并打印一个空数组 [] </ code>。</ p>

如何通过websocket发送cookie? 我应该使用标题还是别的?</ p>
</ div>

展开原文

原文

I'm currently using node.js websocket module in my project. There is PHPSESSID in my browser but not in websocket's request header

 Accept-Encoding:gzip, deflate, sdch
 Accept-Language:en-US,en;q=0.8,ka;q=0.6,ru;q=0.4
 Cache-Control:no-cache
 Connection:Upgrade
 Host:someHost
 Origin:someOrigin
 Pragma:no-cache
 Sec-WebSocket-Extensions:permessage-deflate; client_max_window_bits
 Sec-WebSocket-Key:0Hq9BZfHAxIMbfu3cJpWyg==
 Sec-WebSocket-Protocol:echo-protocol
 Sec-WebSocket-Version:13
 Upgrade:websocket
 User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36

I have checked it in my server side code

 wsServer.on('request', function(request) {
      console.log(request.cookies);
 });

and it prints an empty array [].

How can I send cookie via websocket? Should I use headers or something else?

douyingp82418
douyingp82418 是的,正如您所提到的,GoogleChrome存在问题。我在Firefox上测试它,它通过websocket发送cookie。
接近 5 年之前 回复
duanmei1694
duanmei1694 这可能是安全cookie的问题吗?看看这个答案的最底层:stackoverflow.com/questions/22285299/...
接近 5 年之前 回复
dongyuli4538
dongyuli4538 是的,我认为这是一种奇怪的行为。我在客户端警报(document.cookie)上有javascript代码,它警告PHPSESSID=dekq8b7edlre6culggvbcblch7,但在websoket的标题中没有cookie
接近 5 年之前 回复
dqz30992
dqz30992 从您的标头转储看,浏览器似乎永远不会发送cookie,因此我们需要确定浏览器没有发送它们的原因。
接近 5 年之前 回复
drwn65609
drwn65609 是的,两者都在同一个域上。
接近 5 年之前 回复
dongzhi1907
dongzhi1907 您是否在与Cookie相同的域中托管websocket服务器?
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐