, , , cookie , . , .
var connect = require('express/node_modules/connect'),
parseSignedCookie = connect.utils.parseSignedCookie,
Cookie = require('express/node_modules/cookie'),
store = YOUR_SESSION_STORE_INSTANCE,
sessionKey = "YOUR SESSION KEY",
sessionSecret = "YOUR SESSION SECRET";
var verifyCookie = function(data, callback){
try{
var cookie = Cookie.parse(data.headers.cookie);
var sessionID = parseSignedCookie(cookie[sessionKey], sessionSecret);
store.get(sessionID, callback);
}catch(e){
callback(e);
}
};
io.configure(function(){
io.set("authorization", function(handshake, accept){
if(handshake.headers.cookie){
verifyCookie(handshake, function(error, session){
if(error || !session)
accept("Invalid authentication", false);
else
accept(null, true);
});
}else{
accept("Invalid authentication", false);
}
});
});
100% , , , , , , , - , .
, . , , , , , , .
: , , cookie, , . , http://passportjs.org/guide/configure/:
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
2: - . , , , , redis. :
- ( uuid) HTTP-. .
- , redis , , - .
- , socket.io URL- GET "" .
- socket.io cookie, URL-, GET redis -, . redis , . redis , , - redis.
, socket.io . , , . , . . , , - .
WS WS. Sockjs cookie , socket.io sockjs.