Ich möchte eine Session-Behandlung über Websockets über node.js und socket.io machen, ohne unbedingt Cookies zu verwenden und express.js zu vermeiden, weil das so sein sollte Clients, die nicht in einer Browserumgebung ausgeführt werden. Hat jemand das schon gemacht oder Erfahrungen mit einem Proof of Concept gesammelt?
Bevor die socket.io-Verbindung hergestellt wird, gibt es einen Handshake-Mechanismus. Standardmäßig werden alle ordnungsgemäß eingehenden Anfragen erfolgreich geschüttelt. Es gibt jedoch eine Methode, um Socket-Daten während des Handshakes zu erhalten und je nach Ihrer Wahl true oder false zurückzugeben, die die eingehende Verbindungsanfrage akzeptiert oder ablehnt. Hier ist ein Beispiel aus socket.io docs:
%Vor%Da die handshakeData nach der Autorisierung gespeichert wird, können Sie Daten zu diesem Objekt hinzufügen oder entfernen.
Das erste Argument der Callback -Funktion ist ein Fehler. Sie können hier eine Zeichenfolge angeben, die den Client automatisch zurückweist, wenn er nicht auf null gesetzt ist. Das zweite Argument ist boolesch, ob Sie die eingehende Anfrage akzeptieren wollen oder nicht.
Dies sollte hilfreich sein, Ссылка
Sie können alle Sitzungsvariablen im Auge behalten und Benutzer anhand einer Kombination der folgenden verfügbaren handshakeData em>
eindeutig identifizieren %Vor%Dieses Beispiel kann ebenfalls hilfreich sein, wenn Ihre Nicht-Browser-Clients die Informationen auf andere Weise bereitstellen: