Da die Verbindung nicht die parseCookie Methode mehr, wie können wir die session-Daten mit express?

In node.js und express, es gibt viele Beispiele, die zeigen, wie man die session-Daten.

Wie Sie sehen können, wenn Sie den Besuch der 3. link ist ein link zu StackOverflow. Es war eine gute Antwort, aber wie schon in den Kommentaren von @UpTheCreek, die Verbindung hat nicht mehr die parseCookie Methode. Ich habe genau dieses problem auch. Alle tutorials die ich gefunden habe, nutzt connect parseCookie Methode, die jetzt nicht vorhanden ist. Also fragte ich ihn, wie wir bekommen können die session-Daten und er sagte, er weiß nicht der beste Ansatz, also dachte ich, ich poste die Frage hier. Bei der Verwendung von [email protected], socket.io, und redis, wie kann man die session-Daten und verwenden Sie, dass zur Autorisierung der Benutzer? Ich habe in der Lage zu verwenden require('connect').utils.parseSignedCookie;, aber wenn ich das mache, bekomme ich immer eine Warnung/Fehlermeldung, wenn handshaking,

warn - handshake error Error

und von dem, was ich gelesen habe klingt es wie das ist nicht eine dauerhafte Lösung sowieso.


UPDATE

Ok ich habe session.socket.io arbeiten auf meinem server. Und wie ich vermutet hatte, ich steckengeblieben an dem Punkt, der anweisungsbefugten. Ich glaube, ich könnte gehen über dies der falsche Weg, so fühlen sich frei, mich zu korrigieren. In meinem Redis-Datenbank, habe ich die user Daten. Sie sich das erste mal anmelden, ich will ein update seiner cookie, so dass es enthält Ihre Benutzer-Informationen. Dann das nächste mal kommen Sie zurück auf die Website, die ich überprüfen möchten, wenn Sie ein cookie, und wenn der Benutzer Informationen gibt es. Wenn Sie es nicht ist, ich möchte Sie zu schicken, um den login-Bildschirm. Auf dem login-Bildschirm, wenn ein Benutzer sendet Informationen, es würde testen, die Informationen gegen die Redis-Datenbank, und wenn es passt, es aktualisieren würde, das cookie mit der information der Benutzer. Meine Fragen sind diese:

1) Wie kann ich aktualisieren/ändern ein cookie durch RedisStore?

2) Es sieht aus wie die session-Daten werden nur gespeichert, in cookies. Wie kann ich verfolgen, Informationen für den Benutzer von Seite zu Seite, wenn jemand cookies deaktiviert?

Hier ist mein entsprechender code:

//...hiding unapplicable code...
var redis = require('socket.io/node_modules/redis');
var client = redis.createClient();
var RedisStore = require('connect-redis')(express);
var redis_store = new RedisStore();
var cookieParser = express.cookieParser('secret');

app.configure(function(){
  //...hiding unapplicable code...
  app.use(cookieParser);
  app.use(express.session({secret: 'secret', store: redis_store}));
});

//...hiding code that starts the server and socket.io

var SessionSockets = require('session.socket.io');
var ssockets = new SessionSockets(io, redis_store, cookieParser);

io.configure(function(){
  io.set('authorization', function(handshake, callback){
    if(handshake.headers.cookie){
      //var cookie = parseCookie(handshake.headers.cookie);
      //if(cookie.user){
      // handshake.user = cookie.user;
      //}
    }
    callback(null, true);
  });
});

ssockets.on('connection', function(err, socket, session){ ... });
  • Nicht das abdeckt, was du suchst? stackoverflow.com/questions/11680997/...
  • Das sieht gut aus. Ich werde spielen, um mit ihm nach der Arbeit und ich werde Sie wissen lassen.
  • wie hat es funktioniert?
  • Ich sah es, aber ich hatte keine Zeit, um zu versuchen und umzusetzen, haha. Ich denke, ich werde in der Lage sein zu implementieren session.socket.io mit RedisStore einfach genug, aber ich wird wahrscheinlich führen Sie in Schwierigkeiten, wenn Sie versuchen, um Zugriff Redis bei der ersten Genehmigung. Ich werde updates posten entlang des Weges.
  • Für express 4 & socket.io-1.x stackoverflow.com/a/25618636/153718
InformationsquelleAutor Aust | 2012-10-09
Schreibe einen Kommentar