我可以从 Socket.io 访问 cookie 吗?

发布于 2024-10-13 03:11:42 字数 43 浏览 2 评论 0原文

我想在 cookie 中设置一些用户信息并能够在连接时访问它,这可能吗?

I want to set some user information in a cookie and be able to access it on connection, is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

泪眸﹌ 2024-10-20 03:11:42

使用 Socket.IO 0.8.7,您可以通过以下方式访问请求标头:

socket.handshake.headers

您可以在 https://github.com/ 找到更多详细 LearnBoost/socket.io/wiki/Authorizing

Using Socket.IO 0.8.7, you can access request headers via:

socket.handshake.headers

You can find more detail on this at https://github.com/LearnBoost/socket.io/wiki/Authorizing

尘世孤行 2024-10-20 03:11:42

client.request.headers.cookie 会导致竞争条件,因为 cookie 始终指向最后登录的用户。

请参阅:Socket.IO 身份验证

client.request.headers.cookie leads to race conditions as the cookie always points to the last logged in user.

Please see: Socket.IO Authentication.

古镇旧梦 2024-10-20 03:11:42

我明白了,这有效:

client.request.headers.cookie

I got it, this works:

client.request.headers.cookie
芸娘子的小脾气 2024-10-20 03:11:42

查看engine.io源代码后,您可以使用以下方式设置cookie:

var io = require('socket.io')(3000);

io.use((socket, next) => {
    socket.conn.transport.once('headers', (headers) => {

        headers['set-cookie'] ="sess=test;"; });

    next();
});

此代码可能与设置sid cookie的engine.io代码冲突。
因为 HTTP/1.1 和 HTTP/2 标头都不区分大小写,并且 engine.io 在标头对象中使用“Set-Cookie”,添加小写对象名称“set-cookie”可以避免此问题。

After looking to the engine.io source code you can set cookies using:

var io = require('socket.io')(3000);

io.use((socket, next) => {
    socket.conn.transport.once('headers', (headers) => {

        headers['set-cookie'] ="sess=test;"; });

    next();
});

this code could conflict with the engine.io code that set the sid cookie.
as both HTTP/1.1 and HTTP/2 headers are case-insensitive and engine.io use 'Set-Cookie' in the headers object adding a lowercase object name 'set-cookie' would avoid this problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文