将用户从护照传递到 socket.io
Pass user from passport to socket.io
我正在使用 passportjs,express 4,socket.io 为了将 passportjs 与套接字连接,我添加了 passport.socketio 和 connect-mongo
作为会话存储。我在许多帖子中看到我必须避免使用 cors。因此,当我在客户端代码中使用时:io.connect('/');
,函数的 none 被调用(success/fail)。当我使用 io.connect('http://localhost:8565');
时,失败函数被调用并显示消息:"No session found"。
商店:
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'," 做些什么吗?或者我想念别的东西?
Inside function failed error get value false
and data.isAuthenticated()
is true
, but data.user
have {logged_in: false}
.
实际上问题出在不同的地方,在客户端代码中,我使用 url localhost:port 设置了套接字,当我将其更改为 127.0.0.1:port 时它就解决了。
我正在使用 passportjs,express 4,socket.io 为了将 passportjs 与套接字连接,我添加了 passport.socketio 和 connect-mongo
作为会话存储。我在许多帖子中看到我必须避免使用 cors。因此,当我在客户端代码中使用时:io.connect('/');
,函数的 none 被调用(success/fail)。当我使用 io.connect('http://localhost:8565');
时,失败函数被调用并显示消息:"No session found"。
商店:
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'," 做些什么吗?或者我想念别的东西?
Inside function failed error get value false
and data.isAuthenticated()
is true
, but data.user
have {logged_in: false}
.
实际上问题出在不同的地方,在客户端代码中,我使用 url localhost:port 设置了套接字,当我将其更改为 127.0.0.1:port 时它就解决了。