【发布时间】:2014-06-17 20:10:39
【问题描述】:
我正在尝试在 socket.io 客户端发出连接请求时设置一个 http 标头。有没有办法做到这一点?
这是我正在做的事情:
// server side
var io = socketio(server);
io.use(function (socket, next) {
// authorize using authorization header in socket.request.headers
});
// client side
var socket = io(); // i'm trying to set an authorization header in this http reqeust
有什么想法吗?谢谢。
【问题讨论】:
-
当socket客户端发出请求时,它已经有请求头了。你是说你想改变那些,或者你只是想从套接字客户端发送一些令牌并基于你想要授权客户端的那些令牌???
-
我想在标头中发送一个令牌。 @MOmayr
-
您可以在查询字符串中发送该令牌并在授权功能中检查它。我应该给你举个例子吗?
-
@MOmayr 谢谢。这就是我目前正在做的事情。但是将令牌放在标题中是我想做的。因为这样我可以将我的身份验证中间件重用于 socket.io 连接请求。
-
好吧,我认为你必须为此挖掘 socket.io。但是您可以在授权功能中附加一个带有套接字的对象,然后在 io.connection 事件中使用它。