socket.io验证,如何获取handshakeData里面的session值
发布于 21小时前 作者 CommanderXL 69 次浏览 来自 问答

session是存放在mongodb里面的。

    var cookieParser=require("cookie-parser");
    var signedCookieParser=cookieParser("technode");
    var sessionStore=new MongoStore({url:"mongodb://localhost/technode"});
    
    io.set('authorization', function(handshakeData, accept) {
     signedCookieParser(handshakeData, {}, function(err) {
        if (err) {
          accept(err, false)
        } else {
          sessionStore.get(handshakeData.signedCookies['connect.sid'], function(err, session) {
            if (err) {
              accept(err.message, false)
            } else {
              handshakeData.session = session;    
              console.log(handshakeData.session);         //这个地方获取不到数据
              if (session) {
                accept(null, true)
              } else {
                accept('No login')
              }
            }
          })
        }
      })
      accept(null,true);    
    })
回到顶部