[MUSIK]
In dieser Übung werden wir uns mit der Verwendung von Express-Sitzungen befassen.
Wir richten die Express-Sessions Middleware und
dann die Express-Sessions Dateispeicher Middleware ein.
Und dann richten Sie unsere Anwendung so ein, dass Express-Sitzungen verwendet werden, anstatt
ihre zuweisenden Cookies zu verwenden, wie wir es in der vorherigen Übung getan haben.
Wir werden auch sehen, wie die Sitzungsinformationen selbst unter
serverseitig verfolgt werden.
Um mit dieser Übung zu beginnen,
wechseln Sie in Ihrem Terminal- oder
Befehlsfenster zum Ordner ConfusionServer, und installieren Sie dann express-session.
Geben Sie dazu npm install express-session
und dann den Sitzungsdateispeicher ein.
Weil wir den Dateispeicher verwenden, um die Sitzungsinformationen zu erhalten.
So wird der Sitzungsspeicher in diesem Modul für den Zweck installiert.
Sobald beide installiert sind, und wie Sie jetzt sehen können,
verwende ich in
diesem Kurs express-Session 1.15.6 und session-datei-storage 1.2.0.
Sobald beide installiert sind, gehen wir zu unserer ConfusionServer-Anwendung.
Gehen wir zur ConfusionServer-Anwendung,
hier oben, lassen Sie uns jetzt die express-Sitzung importieren.
Also werden wir sagen, var Sitzung erfordern, Express-Sitzung.
Und var FileStore = erfordern
Sitzung -file-store.
Und das nimmt die Sitzung als Parameter,
diese Sitzung bezieht sich auf diese, die wir gerade hier importiert haben.
Jetzt, wenn wir das tun, dann gehen wir hier in unseren Code,
und dann werden wir anstelle des CookieParser sehen.
Also werde ich den CookieParser von dort kommentieren, und
dann werde ich jetzt Session hier verwenden.
Und dann richten wir die Sitzung mit
den verschiedenen Optionen ein, wir sagen Name,
ich benutze hier nur eine zufällige Sitzungs-ID und dann geheim.
Ich werde das Geheimnis verwenden, das ich früher benutzt habe.
Also lassen Sie mich einfach die Zeichenfolge dort kopieren.
Und dann, Speichern, Ein
, Nicht initialisiert speichern falsch.
Speichern Sie erneut, falsch.
Thesen werden sich nicht viel von der einfachen Anwendung unterscheiden, die wir
derzeit schreiben.
Und dann werden wir sagen, store ist neu,
FileStore, den wir früher erklärt haben.
Das war's.
Jetzt ist meine Session Middleware eingerichtet, um unsere Anwendung zu nutzen.
Nun, wie ich bereits erwähnt habe, wird diese Session Middleware diese
req.session zur Anforderungsnachricht hinzufügen,
also werde ich ein Konsolenprotokoll von req.session machen, nur um zu sehen, was es enthält.
Und dann, unten hier unten, anstatt nach req zuweisen Cookies Benutzer
zu überprüfen, werde ich hier nach req.session.user suchen.
Und dann schauen wir uns den Autorisierungs-Header an und so weiter.
All dieser Teil bleibt genau gleich wie zuvor.
Aber hier, anstatt den Cookie einzurichten, werde ich hier einrichten,
anstatt den Cookie einzurichten, also statt res.cookie hier zu verwenden,
werden wir sagen, req.session.user = zu 'admin'.
Also werden wir die Benutzereigenschaft auf
der req-Session zu admin hier einrichten, und dann von diesem Punkt vorwärts gehen.
Der Rest des Codes hier bleibt also genau gleich wie zuvor,
es wird hier keine Änderung geben.
Und akzeptieren Sie genau dort, wir werden req.session überprüfen,
Benutzer, ist admin oder nicht?
Das ist also der Scheck, den wir hier machen werden.
Das war's.
Dies sind die Änderungen, die wir an unserer
Anwendung vornehmen müssen, um Sitzungen anstelle von signierten Cookies zu verwenden.
Lassen Sie uns die Änderungen speichern und dann schauen Sie sich diese Version unseres Express-Servers an.
Gehen Sie zurück zu unserem Terminal oder Befehlsfenster, lassen Sie uns unseren
Server neu starten, wenn Sie Server ausgeführt wurde, stoppen Sie es einfach und starten Sie den Server neu.
Und wenn der Server einsatzbereit ist,
gehen wir zum Postboten und tun, wenn Sie es wünschen.
Gehen Sie zum Postboten, lassen Sie mich all diese Dinge klären,
wir räumen die Kopfzeilen aus, wir werden die Autorisierung löschen.
Und dann gehe ich zu Cookies, und
ich werde dieses Benutzer-Cookie löschen, weil dieses Cookie nicht mehr gültig ist.
Und dann, lassen Sie uns eine get Anfrage senden an, Die lokalen Gastgerichte.
Und dann, wie wir erwarten, kommt es zurück und sagt: Sie sind nicht authentifiziert.
Lassen Sie uns also authentifizieren, indem wir die Standardauthentifizierung verwenden.
Also sagen wir, admin, Passwort.
Und dann aktualisieren wir die Anfrage und
senden dann eine GET-Anfrage an denselben Punkt.
Und dann erhalten wir die Antwort von unserer Server-Seite zurück.
Nun, beachten Sie, dass in den Kopfzeilen, jetzt sehen Sie wieder, dass es sagte Cookie hier.
Dies wurde nun durch den Sitzungsspeicher hier verursacht.
Und wenn Sie sich die Cookies ansehen, sehen Sie, dass
hier ein anderes Cookie eingerichtet wurde und der Name Session-ID ist.
Das ist also der Name, den wir für unsere Sitzung dort geben, also
ist das die Sitzungs-ID, die wir hier verwenden.
Und wenn Sie auf Cookies klicken, werden Sie feststellen, dass Session-ID genau dort ist.
Und dann sind dies die Details dessen, was sich in diesem Cookie befindet.
So können Sie eine ganze Reihe von Informationen und das Ablaufdatum für
den Cookie bemerken, und so weiter.
Das mag in diesem Moment für Sie nicht viel Sinn ergeben, aber es existiert dort.
Lassen Sie mich die Genehmigung klären.
Und auch aus dem Header, lassen Sie mich diesen Autorisierungs-Header entfernen.
Und dann werde ich die Anfrage erneut senden, und
Sie werden feststellen, dass diese Anfrage auch jetzt korrekt gewartet wird.
Aufgrund der Tatsache, dass dieses Cookie existiert,
und dieses Cookie wird in der ausgehenden Anfrage enthalten sein.
Und die Serverseite wird dies der entsprechenden Sitzung zuordnen.
Und so erkennt der Server, dass dies ein autorisierter Benutzer ist und
sendet die Antwort zurück.
Gehen Sie nun auf unsere Server-Konsole im Terminal oder das Befehlsfenster,
Sie bemerken, dass die, Informationen auf der Server-Seite gedruckt werden.
So sehen Sie, Sie erinnern sich, dass ich die req.session hier protokolliert habe.
Dies ist also, wo die req.session anfänglich enthält.
Und dann heißt es, GET Geschirr für einen nicht gültig.
An dieser Stelle senden Sie den entsprechenden Autorisierungs-Header dorthin.
Und so Ihre Anfrage erfolgreich.
Aber die Notiz, was in der Sitzung in der nächsten Anfrage veröffentlicht wird.
Erinnern Sie sich, dass ich den Autorisationsheader entfernt habe und dann die Anfrage sende.
Aber beachten Sie, was die rec.session hier enthält.
Beachten Sie insbesondere, dass
es nun dieses Benutzerfeld mit dem Admin dort enthält.
Das ist also, was der Server von unserer Client-Seite im Cookie erhält.
Und der Cookie selbst enthält alle diese Informationen hier.
Und so erkennt der Server, dass dies ein gültiger Benutzer ist, und
sendet dann die Ergebnisse von dieser Serverseite zurück.
Gehen wir zum Postboten,
lassen Sie uns noch einmal einen Blick auf die Details dessen werfen, was sich im Cookie befindet.
Wenn Sie also das Cookie hier öffnen,
sehen Sie hier wieder alle Details der Informationen im Cookie.
Wenn Sie sich Ihren Editor ansehen, sehen Sie jetzt, dass
es in Ihrem Editor hier einen neuen Ordner namens Sessions gibt, der hier erstellt wurde.
Dies liegt daran, dass wir Dateispeicher verwendet haben, um
alle unsere Sitzungen zu verfolgen.
Das ist einer der Gründe, warum ich den Dateispeicher verwende, damit ich Ihnen zeigen kann, was
in einer Sitzungsdatei auf meiner Serverseite gespeichert ist.
Wenn Sie also diese Datei hier mit dem langen Namen dort öffnen,
würden Sie darin sehen, dass die Sitzungsinformationen hier gespeichert werden.
Wenn Sie also diese Sitzungsinformationen durchsuchen, beachten Sie insbesondere
dieses Anfangsfeld, das sich auf der serverseitigen Seite befindet.
Hier verfolgt Ihr Server all diese Informationen serverseitig.
Jetzt wird dieses Cookie selbst vom Server erkannt,
da der Client dieses Cookie in die eingehende Anfrage einschließt.
Jetzt ist es in der Lage, in den Sitzungsspeicher zu gehen und dann die Informationen abzurufen
und diese dann in die req.sessions zu laden.
Und daher enthält die req.session diese speziellen Informationen
, die mein Server verwendet, um sicherzustellen, dass
mein Client ein autorisierter Client ist.
Das ist es um Sitzungen.
Damit schließen wir diese Übung ab.
In dieser Übung
haben wir gesehen, wie wir unsere Express-Anwendung einrichten können, um Sitzungen zu verwenden.
Und wir haben auch gesehen, wie wir den Dateispeicher verwenden, um unsere Sitzungen zu verfolgen.
Dies ist ein guter Zeitpunkt für Sie, einen GET-Kommentar mit
den Message Express-Sitzungen Teil eins zu machen.
( MUSIK)