Passport.jsとの接続が成功した後にユーザーデータを取得しようとしています。共有セッション(Express.js、Socket.io、Passport.js)
データを共有するためにexpress-sessionとexpress-socket.io-sessionを使用します。ここに私のコードの一部です:私はいくつかのデータ(req.session.test)を保存しようとするのはここ
var expressSession = require('express-session');
var sharedsession = require("express-socket.io-session");
var MongoStore = require('connect-mongo')(expressSession);
var sessionStore = new MongoStore({
url: 'mongodb://127.0.0.1:27017/default',
ttl: 24 * 60 * 60 // = 1 day
});
var session = expressSession({
cookie: cookieParser,
secret: 'mySecret',
resave: false,
saveUninitialized: false,
store: sessionStore,
});
app.use(session);
app.use(passport.initialize());
app.use(passport.session());
io.use(sharedsession(session, {
autosave: true
}))
require('./app/socket-io.js')(io);
です。
app.get('/index.html', isLoggedIn, function(req, res) {
req.session.test = 'Hello World !';
console.log('=====');
console.log(req.sessionID);
console.log(req.session);
res.sendFile(root + '/index.html');
});
私はapp.get内部req.sessionIDは、()( '接続、機能(...))io.on内部client.request.sessionID異なっていることに気づきました。これは、このスレッドのコメントに従って重要になる可能性があります:How to share sessions with Socket.IO 1.x and Express 4.x?
私はどんな助けもありがとう! :)