将用户从护照传递到socket.io

时间:2015-03-22 17:09:11

标签: express socket.io passport.js connect-mongo

我正在使用passportjs,express 4,socket.io并将passportj与socket连接我已将passport.socketio与connect-mongo添加为会话存储。我在很多帖子中看到我必须避免使用cors。因此,当我在客户端代码中使用io.connect('/');时,不会调用任何函数(成功/失败)。当我使用io.connect('http://localhost:8565');时,将使用消息调用失败函数:"未找到会话"。 商店:

var store = new (require("connect-mongo")(session))({url: "mongodb://localhost/databaseName"});

会话:

var sessionMiddleware = session({
  key: 'your.sid-key',
  secret: 'reallyawesomesecret',
  resave: false,
  saveUninitialized: true,
  cookie: { maxAge: (365 * 24 * 60 * 60) },
  rolling: true,
  store: store
});

Passport.socketio:

io.use(passportSocketIo.authorize({
  cookieParser: cookieParser,
  key: 'your.sid-key',
  secret: 'reallyawesomesecret',
  store: store,
  success: onAuthorizeSuccess,
  fail: onAuthorizeFail
}));

我是否必须使用"键:' your.sid-key'," ?或者我想念别的什么? 内部函数失败错误获取值falsedata.isAuthenticated()true,但data.user{logged_in: false}

1 个答案:

答案 0 :(得分:0)

实际上问题出在不同的地方,在客户端代码上,我使用url localhost:port设置套接字,当我将其更改为127.0.0.1:port时,它就完成了。