【问题标题】:Pass user from passport to socket.io将用户从护照传递到 socket.io
【发布时间】:2015-05-25 16:19:41
【问题描述】:

我正在使用passportjs、express 4、socket.io 并将passportjs 与socket 连接起来,我添加了带有connect-mongo 的passport.socketio 作为会话存储。我在许多帖子中看到我必须避免使用 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}

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2017-11-21
    • 2018-05-26
    • 1970-01-01
    • 2016-01-10
    • 2013-02-21
    相关资源
    最近更新 更多