Authentication 使用chrome WebSocket时,如何传递额外的cookie?

Authentication 使用chrome WebSocket时,如何传递额外的cookie?,authentication,cookies,google-chrome-extension,websocket,Authentication,Cookies,Google Chrome Extension,Websocket,我正在构建一个chrome扩展。在其中,我使用以下代码: new WebSocket("wss://api.example.com/"); 问题是,在我的浏览器中带有cookie的网站是WWW.example.com,因此WebSocket不会通过会话cookie 我需要的是: new WebSocket("wss://api.example.com/", { "cookies": [ { "session": sessionKey } ] }); 如何实现这一点?创建cookie的域将决定

我正在构建一个chrome扩展。在其中,我使用以下代码:

new WebSocket("wss://api.example.com/");
问题是,在我的浏览器中带有cookie的网站是
WWW.example.com
,因此WebSocket不会通过会话cookie

我需要的是:

new WebSocket("wss://api.example.com/", { "cookies": [ { "session": sessionKey } ] });

如何实现这一点?

创建cookie的域将决定是否允许子域查看cookie。只有cookie的创建者才能对此做任何事情。如果
www.example.com
example.com
上设置cookie并允许子域看到它,那么
api.example.com
将能够看到它。否则,
api.example.com
将不允许查看该cookie。这就是浏览器安全的工作原理

如果您知道Javascript中的
sessionKey
,您可以自己将其设置为允许子域的
example.com
cookie,然后它将与webSocket请求一起自动发送到
www.example.com
。您没有明确发送cookies。您在域上设置cookie并允许访问子域。然后,cookie将在Ajax调用和webSocket连接请求中自动发送

在您的特定情况下,您可以执行以下操作:

document.cookie = "session=" + sessionKey + ";path=/;domain=example.com;"