socket.io验证,如何获取handshakeData里面的session值
发布于 9 年前 作者 CommanderXL 5899 次浏览 最后一次编辑是 8 年前 来自 问答

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);	
	})
回到顶部