如何在使用 chrome WebSockets 时传递额外的 cookie



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

new WebSocket("wss://api.example.com/");

问题是我的浏览器中带有cookie的网站WWW.example.com,因此WebSockets不会传递会话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。 您不会明确发送 Cookie。 您在域上设置 Cookie 并允许访问子域。 然后,cookie 将在 Ajax 调用和 webSocket 连接请求中自动发送。

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

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

相关内容

  • 没有找到相关文章

最新更新