socket.io 支持单一的全局授权方法,没有中间件功能。express.io 和 passport.socketio 都依赖此功能作为其逻辑的注入点。
express.io 将 express 会话附加到请求,passport.socketio 附加膨胀的用户对象。如何优雅地结合这两个功能?
socket.io 支持单一的全局授权方法,没有中间件功能。express.io 和 passport.socketio 都依赖此功能作为其逻辑的注入点。
express.io 将 express 会话附加到请求,passport.socketio 附加膨胀的用户对象。如何优雅地结合这两个功能?
我发现的唯一方法是从 socket.io 中获取 express.io 的授权回调并将其连接为 passport.socketio 的成功回调:
app.io.configure(function() {
var expressAuth = app.io.get('authorization');
var sessionConfig = {
...
success : expressAuth // callback on success
};
app.io.set('authorization', passportSocketIo.authorize(sessionConfig));
});
这对我有用,但它与“授权”注册的顺序相结合。有更好的想法吗?