1
00:00:00,000 --> 00:00:04,514
[MUSIK]

2
00:00:04,514 --> 00:00:09,803
In dieser Übung werden wir uns mit der Verwendung von Express-Sitzungen befassen.

3
00:00:09,803 --> 00:00:13,115
Wir richten die Express-Sessions Middleware und

4
00:00:13,115 --> 00:00:16,356
dann die Express-Sessions Dateispeicher Middleware ein.

5
00:00:16,356 --> 00:00:21,315
Und dann richten Sie unsere Anwendung so ein, dass Express-Sitzungen verwendet werden, anstatt

6
00:00:21,315 --> 00:00:25,885
ihre zuweisenden Cookies zu verwenden, wie wir es in der vorherigen Übung getan haben.

7
00:00:25,885 --> 00:00:30,870
Wir werden auch sehen, wie die Sitzungsinformationen selbst unter

8
00:00:30,870 --> 00:00:32,145
serverseitig verfolgt werden.

9
00:00:33,750 --> 00:00:36,556
Um mit dieser Übung zu beginnen,

10
00:00:36,556 --> 00:00:40,672
wechseln Sie in Ihrem Terminal- oder

11
00:00:40,672 --> 00:00:45,643
Befehlsfenster zum Ordner ConfusionServer, und installieren Sie dann express-session.

12
00:00:45,643 --> 00:00:52,672
Geben Sie dazu npm install express-session

13
00:00:52,672 --> 00:00:56,678
und dann den Sitzungsdateispeicher ein.

14
00:00:58,792 --> 00:01:03,320
Weil wir den Dateispeicher verwenden, um die Sitzungsinformationen zu erhalten.

15
00:01:03,320 --> 00:01:08,623
So wird der Sitzungsspeicher in diesem Modul für den Zweck installiert.

16
00:01:08,623 --> 00:01:13,399
Sobald beide installiert sind, und wie Sie jetzt sehen können,

17
00:01:13,399 --> 00:01:17,008
verwende ich in

18
00:01:17,008 --> 00:01:21,430
diesem Kurs express-Session 1.15.6 und session-datei-storage 1.2.0.

19
00:01:21,430 --> 00:01:26,397
Sobald beide installiert sind, gehen wir zu unserer ConfusionServer-Anwendung.

20
00:01:27,510 --> 00:01:31,868
Gehen wir zur ConfusionServer-Anwendung,

21
00:01:31,868 --> 00:01:36,921
hier oben, lassen Sie uns jetzt die express-Sitzung importieren.

22
00:01:36,921 --> 00:01:44,414
Also werden wir sagen, var Sitzung erfordern, Express-Sitzung.

23
00:01:46,639 --> 00:01:53,560
Und var FileStore = erfordern

24
00:01:53,560 --> 00:01:59,908
Sitzung -file-store.

25
00:02:02,812 --> 00:02:07,064
Und das nimmt die Sitzung als Parameter,

26
00:02:07,064 --> 00:02:13,830
diese Sitzung bezieht sich auf diese, die wir gerade hier importiert haben.

27
00:02:13,830 --> 00:02:18,970
Jetzt, wenn wir das tun, dann gehen wir hier in unseren Code,

28
00:02:18,970 --> 00:02:22,490
und dann werden wir anstelle des CookieParser sehen.

29
00:02:22,490 --> 00:02:26,598
Also werde ich den CookieParser von dort kommentieren, und

30
00:02:26,598 --> 00:02:33,401
dann werde ich jetzt Session hier verwenden.

31
00:02:36,481 --> 00:02:41,823
Und dann richten wir die Sitzung mit

32
00:02:41,823 --> 00:02:47,175
den verschiedenen Optionen ein, wir sagen Name,

33
00:02:50,402 --> 00:02:56,909
ich benutze hier nur eine zufällige Sitzungs-ID und dann geheim.

34
00:02:58,871 --> 00:03:02,880
Ich werde das Geheimnis verwenden, das ich früher benutzt habe.

35
00:03:02,880 --> 00:03:06,493
Also lassen Sie mich einfach die Zeichenfolge dort kopieren.

36
00:03:06,493 --> 00:03:11,981
Und dann, Speichern, Ein

37
00:03:13,422 --> 00:03:21,119
, Nicht initialisiert speichern falsch.

38
00:03:27,180 --> 00:03:28,390
Speichern Sie erneut, falsch.

39
00:03:28,390 --> 00:03:32,198
Thesen werden sich nicht viel von der einfachen Anwendung unterscheiden, die wir

40
00:03:32,198 --> 00:03:33,330
derzeit schreiben.

41
00:03:33,330 --> 00:03:37,604
Und dann werden wir sagen, store ist neu,

42
00:03:39,643 --> 00:03:42,497
FileStore, den wir früher erklärt haben.

43
00:03:45,441 --> 00:03:46,330
Das war's.

44
00:03:46,330 --> 00:03:53,330
Jetzt ist meine Session Middleware eingerichtet, um unsere Anwendung zu nutzen.

45
00:03:53,330 --> 00:03:58,295
Nun, wie ich bereits erwähnt habe, wird diese Session Middleware diese

46
00:03:58,295 --> 00:04:03,560
req.session zur Anforderungsnachricht hinzufügen,

47
00:04:03,560 --> 00:04:08,630
also werde ich ein Konsolenprotokoll von req.session machen, nur um zu sehen, was es enthält.

48
00:04:08,630 --> 00:04:13,910
Und dann, unten hier unten, anstatt nach req zuweisen Cookies Benutzer

49
00:04:13,910 --> 00:04:18,370
zu überprüfen, werde ich hier nach req.session.user suchen.

50
00:04:19,390 --> 00:04:23,620
Und dann schauen wir uns den Autorisierungs-Header an und so weiter.

51
00:04:23,620 --> 00:04:27,460
All dieser Teil bleibt genau gleich wie zuvor.

52
00:04:27,460 --> 00:04:32,760
Aber hier, anstatt den Cookie einzurichten, werde ich hier einrichten,

53
00:04:32,760 --> 00:04:38,052
anstatt den Cookie einzurichten, also statt res.cookie hier zu verwenden,

54
00:04:38,052 --> 00:04:45,470
werden wir sagen, req.session.user = zu 'admin'.

55
00:04:45,470 --> 00:04:50,030
Also werden wir die Benutzereigenschaft auf

56
00:04:50,030 --> 00:04:55,510
der req-Session zu admin hier einrichten, und dann von diesem Punkt vorwärts gehen.

57
00:04:55,510 --> 00:04:59,090
Der Rest des Codes hier bleibt also genau gleich wie zuvor,

58
00:04:59,090 --> 00:05:01,030
es wird hier keine Änderung geben.

59
00:05:01,030 --> 00:05:06,240
Und akzeptieren Sie genau dort, wir werden req.session überprüfen,

60
00:05:09,462 --> 00:05:11,770
Benutzer, ist admin oder nicht?

61
00:05:11,770 --> 00:05:14,340
Das ist also der Scheck, den wir hier machen werden.

62
00:05:14,340 --> 00:05:15,360
Das war's.

63
00:05:15,360 --> 00:05:18,820
Dies sind die Änderungen, die wir an unserer

64
00:05:18,820 --> 00:05:23,850
Anwendung vornehmen müssen, um Sitzungen anstelle von signierten Cookies zu verwenden.

65
00:05:23,850 --> 00:05:30,040
Lassen Sie uns die Änderungen speichern und dann schauen Sie sich diese Version unseres Express-Servers an.

66
00:05:30,040 --> 00:05:34,480
Gehen Sie zurück zu unserem Terminal oder Befehlsfenster, lassen Sie uns unseren

67
00:05:35,600 --> 00:05:39,860
Server neu starten, wenn Sie Server ausgeführt wurde, stoppen Sie es einfach und starten Sie den Server neu.

68
00:05:40,870 --> 00:05:42,730
Und wenn der Server einsatzbereit ist,

69
00:05:42,730 --> 00:05:48,600
gehen wir zum Postboten und tun, wenn Sie es wünschen.

70
00:05:48,600 --> 00:05:56,350
Gehen Sie zum Postboten, lassen Sie mich all diese Dinge klären,

71
00:05:56,350 --> 00:06:01,970
wir räumen die Kopfzeilen aus, wir werden die Autorisierung löschen.

72
00:06:01,970 --> 00:06:03,630
Und dann gehe ich zu Cookies, und

73
00:06:03,630 --> 00:06:08,540
ich werde dieses Benutzer-Cookie löschen, weil dieses Cookie nicht mehr gültig ist.

74
00:06:08,540 --> 00:06:16,030
Und dann, lassen Sie uns eine get Anfrage senden an, Die lokalen Gastgerichte.

75
00:06:16,030 --> 00:06:21,160
Und dann, wie wir erwarten, kommt es zurück und sagt: Sie sind nicht authentifiziert.

76
00:06:21,160 --> 00:06:24,520
Lassen Sie uns also authentifizieren, indem wir die Standardauthentifizierung verwenden.

77
00:06:24,520 --> 00:06:29,483
Also sagen wir, admin, Passwort.

78
00:06:29,483 --> 00:06:32,223
Und dann aktualisieren wir die Anfrage und

79
00:06:32,223 --> 00:06:35,740
senden dann eine GET-Anfrage an denselben Punkt.

80
00:06:35,740 --> 00:06:39,400
Und dann erhalten wir die Antwort von unserer Server-Seite zurück.

81
00:06:39,400 --> 00:06:46,000
Nun, beachten Sie, dass in den Kopfzeilen, jetzt sehen Sie wieder, dass es sagte Cookie hier.

82
00:06:46,000 --> 00:06:52,500
Dies wurde nun durch den Sitzungsspeicher hier verursacht.

83
00:06:52,500 --> 00:06:57,492
Und wenn Sie sich die Cookies ansehen, sehen Sie, dass

84
00:06:57,492 --> 00:07:02,570
hier ein anderes Cookie eingerichtet wurde und der Name Session-ID ist.

85
00:07:02,570 --> 00:07:06,398
Das ist also der Name, den wir für unsere Sitzung dort geben, also

86
00:07:06,398 --> 00:07:09,744
ist das die Sitzungs-ID, die wir hier verwenden.

87
00:07:11,172 --> 00:07:16,880
Und wenn Sie auf Cookies klicken, werden Sie feststellen, dass Session-ID genau dort ist.

88
00:07:16,880 --> 00:07:22,102
Und dann sind dies die Details dessen, was sich in diesem Cookie befindet.

89
00:07:22,102 --> 00:07:26,816
So können Sie eine ganze Reihe von Informationen und das Ablaufdatum für

90
00:07:26,816 --> 00:07:28,940
den Cookie bemerken, und so weiter.

91
00:07:28,940 --> 00:07:33,703
Das mag in diesem Moment für Sie nicht viel Sinn ergeben, aber es existiert dort.

92
00:07:33,703 --> 00:07:38,110
Lassen Sie mich die Genehmigung klären.

93
00:07:38,110 --> 00:07:42,140
Und auch aus dem Header, lassen Sie mich diesen Autorisierungs-Header entfernen.

94
00:07:42,140 --> 00:07:45,312
Und dann werde ich die Anfrage erneut senden, und

95
00:07:45,312 --> 00:07:51,094
Sie werden feststellen, dass diese Anfrage auch jetzt korrekt gewartet wird.

96
00:07:51,094 --> 00:07:54,061
Aufgrund der Tatsache, dass dieses Cookie existiert,

97
00:07:54,061 --> 00:07:58,250
und dieses Cookie wird in der ausgehenden Anfrage enthalten sein.

98
00:07:58,250 --> 00:08:01,400
Und die Serverseite wird dies der entsprechenden Sitzung zuordnen.

99
00:08:02,922 --> 00:08:07,375
Und so erkennt der Server, dass dies ein autorisierter Benutzer ist und

100
00:08:07,375 --> 00:08:10,042
sendet die Antwort zurück.

101
00:08:10,042 --> 00:08:17,004
Gehen Sie nun auf unsere Server-Konsole im Terminal oder das Befehlsfenster,

102
00:08:17,004 --> 00:08:23,080
Sie bemerken, dass die, Informationen auf der Server-Seite gedruckt werden.

103
00:08:23,080 --> 00:08:27,460
So sehen Sie, Sie erinnern sich, dass ich die req.session hier protokolliert habe.

104
00:08:27,460 --> 00:08:30,780
Dies ist also, wo die req.session anfänglich enthält.

105
00:08:30,780 --> 00:08:36,940
Und dann heißt es, GET Geschirr für einen nicht gültig.

106
00:08:36,940 --> 00:08:43,620
An dieser Stelle senden Sie den entsprechenden Autorisierungs-Header dorthin.

107
00:08:43,620 --> 00:08:48,365
Und so Ihre Anfrage erfolgreich.

108
00:08:48,365 --> 00:08:53,080
Aber die Notiz, was in der Sitzung in der nächsten Anfrage veröffentlicht wird.

109
00:08:53,080 --> 00:08:58,080
Erinnern Sie sich, dass ich den Autorisationsheader entfernt habe und dann die Anfrage sende.

110
00:08:58,080 --> 00:09:00,960
Aber beachten Sie, was die rec.session hier enthält.

111
00:09:00,960 --> 00:09:03,088
Beachten Sie insbesondere, dass

112
00:09:03,088 --> 00:09:08,129
es nun dieses Benutzerfeld mit dem Admin dort enthält.

113
00:09:09,280 --> 00:09:15,120
Das ist also, was der Server von unserer Client-Seite im Cookie erhält.

114
00:09:15,120 --> 00:09:18,690
Und der Cookie selbst enthält alle diese Informationen hier.

115
00:09:18,690 --> 00:09:22,987
Und so erkennt der Server, dass dies ein gültiger Benutzer ist, und

116
00:09:22,987 --> 00:09:27,249
sendet dann die Ergebnisse von dieser Serverseite zurück.

117
00:09:27,249 --> 00:09:28,337
Gehen wir zum Postboten,

118
00:09:28,337 --> 00:09:32,220
lassen Sie uns noch einmal einen Blick auf die Details dessen werfen, was sich im Cookie befindet.

119
00:09:32,220 --> 00:09:34,137
Wenn Sie also das Cookie hier öffnen,

120
00:09:34,137 --> 00:09:39,103
sehen Sie hier wieder alle Details der Informationen im Cookie.

121
00:09:39,103 --> 00:09:43,026
Wenn Sie sich Ihren Editor ansehen, sehen Sie jetzt, dass

122
00:09:43,026 --> 00:09:48,140
es in Ihrem Editor hier einen neuen Ordner namens Sessions gibt, der hier erstellt wurde.

123
00:09:48,140 --> 00:09:52,320
Dies liegt daran, dass wir Dateispeicher verwendet haben, um

124
00:09:52,320 --> 00:09:54,130
alle unsere Sitzungen zu verfolgen.

125
00:09:54,130 --> 00:09:58,180
Das ist einer der Gründe, warum ich den Dateispeicher verwende, damit ich Ihnen zeigen kann, was

126
00:09:58,180 --> 00:10:03,320
in einer Sitzungsdatei auf meiner Serverseite gespeichert ist.

127
00:10:03,320 --> 00:10:08,430
Wenn Sie also diese Datei hier mit dem langen Namen dort öffnen,

128
00:10:08,430 --> 00:10:13,890
würden Sie darin sehen, dass die Sitzungsinformationen hier gespeichert werden.

129
00:10:13,890 --> 00:10:19,460
Wenn Sie also diese Sitzungsinformationen durchsuchen, beachten Sie insbesondere

130
00:10:19,460 --> 00:10:22,880
dieses Anfangsfeld, das sich auf der serverseitigen Seite befindet.

131
00:10:22,880 --> 00:10:27,930
Hier verfolgt Ihr Server all diese Informationen serverseitig.

132
00:10:27,930 --> 00:10:32,650
Jetzt wird dieses Cookie selbst vom Server erkannt,

133
00:10:32,650 --> 00:10:36,630
da der Client dieses Cookie in die eingehende Anfrage einschließt.

134
00:10:36,630 --> 00:10:41,330
Jetzt ist es in der Lage, in den Sitzungsspeicher zu gehen und dann die Informationen abzurufen

135
00:10:41,330 --> 00:10:44,870
und diese dann in die req.sessions zu laden.

136
00:10:44,870 --> 00:10:49,800
Und daher enthält die req.session diese speziellen Informationen

137
00:10:49,800 --> 00:10:54,810
, die mein Server verwendet, um sicherzustellen, dass

138
00:10:54,810 --> 00:10:57,710
mein Client ein autorisierter Client ist.

139
00:10:57,710 --> 00:11:00,010
Das ist es um Sitzungen.

140
00:11:00,010 --> 00:11:03,230
Damit schließen wir diese Übung ab.

141
00:11:03,230 --> 00:11:04,100
In dieser Übung

142
00:11:04,100 --> 00:11:08,630
haben wir gesehen, wie wir unsere Express-Anwendung einrichten können, um Sitzungen zu verwenden.

143
00:11:08,630 --> 00:11:13,751
Und wir haben auch gesehen, wie wir den Dateispeicher verwenden, um unsere Sitzungen zu verfolgen.

144
00:11:13,751 --> 00:11:18,360
Dies ist ein guter Zeitpunkt für Sie, einen GET-Kommentar mit

145
00:11:18,360 --> 00:11:22,291
den Message Express-Sitzungen Teil eins zu machen.

146
00:11:22,291 --> 00:11:25,521
( MUSIK)