Node.js passport.socketio一直在说-到socket.io的连接失败:未找到会话

Node.js passport.socketio一直在说-到socket.io的连接失败:未找到会话,node.js,session,express,socket.io,passport.socketio,Node.js,Session,Express,Socket.io,Passport.socketio,我试图访问socket.io中的session对象,如req.user,以便对其进行处理,我使用passport.socket.iolibrary来执行此操作。但是现在的问题是,我一直无法连接到socket。io:找不到会话。 这是密码 var express = require('express'); var session = require('express-session'); var cookieParser = require('cookie-parser')

我试图访问socket.io中的session对象,如req.user,以便对其进行处理,我使用
passport.socket.io
library来执行此操作。但是现在的问题是,我一直无法连接到socket。io:找不到会话。

这是密码

    var express = require('express');
    var session = require('express-session');
    var cookieParser = require('cookie-parser');
    var MongoStore = require('connect-mongo/es5')(session);
    var passport = require('passport');
    var passportSocketIo = require("passport.socketio");

    var config = require('./config/config');


    var sessionStore = new MongoStore({ url: config.database, autoReconnect: true });
    var app = express();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);


    app.use(cookieParser());
    app.use(session({
      resave: true,
      saveUninitialized: true,
      secret: config.secret,
      store: sessionStore
    }));
    app.use(passport.initialize());
    app.use(passport.session());

    io.use(passportSocketIo.authorize({
      cookieParser: cookieParser,       
      key:          express.sid,   // Not really sure how to get this key?
      secret:       config.secret,  
      store:        sessionStore,        
      success:      onAuthorizeSuccess,  
      fail:         onAuthorizeFail,     
    }));

    function onAuthorizeSuccess(data, accept){
      console.log('successful connection to socket.io');
      accept(null, true);  
    }

    function onAuthorizeFail(data, message, error, accept){
      if(error)
        throw new Error(message);
      console.log('failed connection to socket.io:', message);


      accept(null, false);
      if(error)
        accept(new Error(message));
    }

 io.connect('connection', function(socket) {
     console.log("Something Here");
 });


 http.listen(3000);

它继续运行此功能,因为passport未能与socket.io
onAuthorizeFail
进行握手。如何解决这个问题?

在我浏览了
express session
文档之后,这是钥匙的问题

我已经通过更改解决了这个问题

express.sid => 'connect.sid'

io.use(passportSocketIo.authorize({
   key: 'connect.sid'     
 }));
似乎默认情况下express将提供“connect.sid”