【问题标题】:how to use both express.io and passport.socketio authentication features globally如何在全局范围内同时使用 express.io 和 passport.socketio 身份验证功能
【发布时间】:2014-02-25 15:02:36
【问题描述】:
socket.io 支持没有中间件功能的单一全局授权方法。 express.io 和 passport.socketio 都依赖此功能作为其逻辑的注入点。
express.io 将 express 会话附加到请求,passport.socketio 附加膨胀的用户对象。如何优雅地结合这两个功能?
【问题讨论】:
标签:
express
socket.io
passport.js
express.io
passport.socketio
【解决方案1】:
我找到的唯一方法是从 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));
});
这对我有用,但它与“授权”注册的顺序相结合。有更好的想法吗?