0

我正在使用passportjs、express 4、socket.io 并将passportjs 与套接字连接,我已将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
}));

我必须对“key:'your.sid-key'”做些什么吗?还是我想念别的东西?内部函数失败错误获取值falsedata.isAuthenticated()true,但data.user{logged_in: false}

4

1 回答 1

0

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

于 2015-03-23T11:00:57.190 回答