﻿1
00:00:01,160 --> 00:00:03,130
‫-: Zuvor haben wir

2
00:00:03,130 --> 00:00:05,420
‫also bereits eine einfache Anmeldefunktion implementiert,

3
00:00:05,420 --> 00:00:06,490
‫aber in

4
00:00:06,490 --> 00:00:08,760
‫diesem Vortrag werden wir den Benutzer

5
00:00:08,760 --> 00:00:11,700
‫tatsächlich auch für einen realeren Anmeldevorgang anmelden.

6
00:00:11,700 --> 00:00:13,830
‫Ab diesem Vortrag werden wir

7
00:00:13,830 --> 00:00:16,760
‫also wirklich damit beginnen, unsere Authentifizierung zu

8
00:00:16,760 --> 00:00:19,683
‫implementieren, und hier wird es wirklich ernst.

9
00:00:21,230 --> 00:00:23,210
‫Deshalb möchte ich Sie hier, bevor

10
00:00:23,210 --> 00:00:25,150
‫wir beginnen, warnen, dass es

11
00:00:25,150 --> 00:00:28,740
‫sehr schwierig ist, die Authentifizierung richtig zu machen, und es

12
00:00:28,740 --> 00:00:31,330
‫gibt viele Tutorials, die Sie finden werden,

13
00:00:31,330 --> 00:00:32,970
‫wenn Sie mit Node

14
00:00:32,970 --> 00:00:35,492
‫nach Authentifizierung suchen. js und

15
00:00:35,492 --> 00:00:38,480
‫Express machen viele von ihnen viele schwerwiegende

16
00:00:38,480 --> 00:00:42,220
‫Fehler und vereinfachen Dinge, die nicht vereinfacht werden sollten.

17
00:00:42,220 --> 00:00:45,270
‫In Ordnung, das soll nicht heißen, dass alle Tutorials

18
00:00:45,270 --> 00:00:46,740
‫da draußen schlecht,

19
00:00:46,740 --> 00:00:48,500
‫in Ordnung oder nutzlos sind

20
00:00:48,500 --> 00:00:52,400
‫oder so, aber ich verbringe wirklich Wochen damit, alle Best Practices zu

21
00:00:52,400 --> 00:00:54,670
‫recherchieren und meinen Code zu verfeinern und

22
00:00:54,670 --> 00:00:56,410
‫zu verbessern, um diesen Authentifizierungsabschnitt

23
00:00:56,410 --> 00:00:59,550
‫so zu gestalten, dass wir Ich werde jetzt so gut

24
00:00:59,550 --> 00:01:02,000
‫wie möglich mit der Implementierung beginnen, für einen

25
00:01:02,000 --> 00:01:05,228
‫Anfänger wie Sie, in Ordnung, und das liegt daran, dass

26
00:01:05,228 --> 00:01:08,950
‫wir beim Schreiben dieses Teils der Anwendung wirklich besonders vorsichtig sein müssen,

27
00:01:08,950 --> 00:01:12,730
‫denn denken Sie daran, dass hier die Daten unserer Benutzer auf dem

28
00:01:12,730 --> 00:01:15,650
‫Spiel stehen , und das Vertrauen in das Unternehmen,

29
00:01:15,650 --> 00:01:17,200
‫das die Anwendung ausführt,

30
00:01:17,200 --> 00:01:19,080
‫steht auf dem Spiel, und so

31
00:01:19,080 --> 00:01:21,200
‫ist die Implementierung der Authentifizierung eine

32
00:01:21,200 --> 00:01:24,360
‫echte Verantwortung, bei der Sie überhaupt keine Fehler machen sollten.

33
00:01:24,360 --> 00:01:25,980
‫Nun gibt es einige

34
00:01:25,980 --> 00:01:28,470
‫Bibliotheken, die uns bei der Implementierung

35
00:01:28,470 --> 00:01:31,360
‫von Authentifizierung und Autorisierung helfen können, und die

36
00:01:31,360 --> 00:01:33,130
‫bekannteste heißt Passport, aber

37
00:01:33,130 --> 00:01:34,740
‫selbst eine solche

38
00:01:34,740 --> 00:01:37,470
‫Bibliothek nimmt Ihnen nicht die ganze Arbeit

39
00:01:37,470 --> 00:01:39,510
‫und die ganze Verantwortung ab.

40
00:01:39,510 --> 00:01:40,630
‫In diesem

41
00:01:40,630 --> 00:01:42,810
‫Fall werden wir die

42
00:01:42,810 --> 00:01:46,380
‫gesamte Anmeldeschutz- und Autorisierungslogik selbst implementieren, mit

43
00:01:46,380 --> 00:01:49,910
‫Ausnahme der Jason-Webtoken-Implementierung, über die wir im

44
00:01:49,910 --> 00:01:52,310
‫letzten Video selbst gesprochen haben.

45
00:01:52,310 --> 00:01:54,820
‫Okay, das ganze Unterschreiben und Verifizieren,

46
00:01:54,820 --> 00:01:58,170
‫das ganze Zeug, überlassen wir der WJT-Bibliothek, aber

47
00:01:58,170 --> 00:02:00,450
‫den Rest werden wir

48
00:02:00,450 --> 00:02:02,920
‫in den nächsten Vorlesungen selbst umsetzen.

49
00:02:02,920 --> 00:02:04,430
‫Wie ich bereits erwähnt

50
00:02:04,430 --> 00:02:07,830
‫habe, haben wir hier bereits unsere Anmeldefunktion, aber im

51
00:02:07,830 --> 00:02:09,240
‫Moment müssen

52
00:02:09,240 --> 00:02:11,500
‫Sie nur einen neuen Benutzer erstellen

53
00:02:11,500 --> 00:02:14,010
‫und ihn dann an den Client zurücksenden.

54
00:02:14,010 --> 00:02:17,410
‫Nun, kurz nachdem ich die Aufzeichnung dieses Kurses

55
00:02:17,410 --> 00:02:18,640
‫beendet

56
00:02:18,640 --> 00:02:21,239
‫hatte, bemerkte ich tatsächlich, dass

57
00:02:21,239 --> 00:02:23,920
‫diese Art der Benutzeranmeldung eine sehr

58
00:02:23,920 --> 00:02:26,630
‫schwerwiegende Sicherheitslücke aufweist. Im Grunde besteht

59
00:02:26,630 --> 00:02:30,640
‫das Problem also darin, dass wir im Moment einen

60
00:02:30,640 --> 00:02:32,850
‫neuen Benutzer erstellen, der alle

61
00:02:32,850 --> 00:02:36,350
‫eingehenden Daten verwendet das Body-Recht, und das Problem

62
00:02:36,350 --> 00:02:40,960
‫hier ist, dass so jeder die Rolle als Admin-Recht festlegen kann,

63
00:02:40,960 --> 00:02:45,360
‫also kann sich im Grunde jetzt jeder einfach als Admin

64
00:02:45,360 --> 00:02:46,670
‫in unserer Anwendung

65
00:02:46,670 --> 00:02:49,620
‫registrieren, und das brauchen wir natürlich nicht.

66
00:02:49,620 --> 00:02:53,090
‫Dies ist also wieder eine ernsthafte Sicherheitslücke, die

67
00:02:53,090 --> 00:02:55,860
‫wir natürlich beheben müssen, und das

68
00:02:55,860 --> 00:02:58,420
‫Beheben ist eigentlich ganz einfach.

69
00:02:58,420 --> 00:03:01,150
‫Was Sie also anstelle dieser Codezeile, die hier

70
00:03:01,150 --> 00:03:02,670
‫ausgewählt ist, benötigen, ist

71
00:03:02,670 --> 00:03:06,370
‫dieses Codestück, das ich gerade hier auf dem Bildschirm platziert habe.

72
00:03:06,370 --> 00:03:07,460
‫Okay.

73
00:03:07,460 --> 00:03:10,900
‫Also löschen Sie bitte noch einmal diese Codezeile, die derzeit hier

74
00:03:10,900 --> 00:03:12,720
‫ausgewählt ist, und ersetzen Sie sie

75
00:03:12,720 --> 00:03:15,320
‫durch den Code, den ich gerade hier auf dem

76
00:03:15,320 --> 00:03:16,690
‫Bildschirm eingefügt habe.

77
00:03:16,690 --> 00:03:19,070
‫Nun, was ist eigentlich der große Unterschied

78
00:03:19,070 --> 00:03:21,010
‫hier, nun, mit diesem

79
00:03:21,010 --> 00:03:24,580
‫neuen Code lassen wir im Grunde nur die Daten zu, die

80
00:03:24,580 --> 00:03:26,550
‫wir tatsächlich in den neuen Benutzer

81
00:03:26,550 --> 00:03:30,370
‫eingeben müssen, also nur einen Namen, die E-Mail und dann die Passwörter.

82
00:03:30,370 --> 00:03:34,370
‫Selbst wenn ein Benutzer versucht, eine Rolle manuell einzugeben, speichern wir

83
00:03:34,370 --> 00:03:37,030
‫dies jetzt nicht im neuen Benutzer, und

84
00:03:37,030 --> 00:03:38,750
‫dasselbe gilt für andere

85
00:03:38,750 --> 00:03:41,170
‫Dinge, wie zum Beispiel ein Foto.

86
00:03:41,170 --> 00:03:45,120
‫Dies ist die schnelle und einfache Lösung für dieses Problem.

87
00:03:45,120 --> 00:03:45,983
‫Was

88
00:03:45,983 --> 00:03:49,890
‫dies nun bewirkt, ist, dass wir uns eigentlich nicht mehr als Admin

89
00:03:49,890 --> 00:03:52,570
‫registrieren können. Wenn wir also einen neuen Administrator

90
00:03:52,570 --> 00:03:53,680
‫zu unserem System

91
00:03:53,680 --> 00:03:57,030
‫hinzufügen müssen, können wir ganz einfach normal einen neuen Benutzer

92
00:03:57,030 --> 00:03:59,610
‫erstellen und dann in MongoDB Compass gehen.

93
00:03:59,610 --> 00:04:02,440
‫und bearbeiten Sie im Grunde diese Rolle dort.

94
00:04:02,440 --> 00:04:03,930
‫Bearbeiten Sie es

95
00:04:03,930 --> 00:04:06,470
‫also manuell vom Benutzer zum Administrator, okay.

96
00:04:06,470 --> 00:04:09,070
‫Natürlich könnten wir auch eine spezielle Route

97
00:04:09,070 --> 00:04:10,910
‫definieren, um nur Admins

98
00:04:10,910 --> 00:04:13,610
‫zu erstellen, aber das wäre etwas zu viel.

99
00:04:13,610 --> 00:04:16,210
‫Okay, also lass uns jetzt weitermachen.

100
00:04:16,210 --> 00:04:18,820
‫Beachten Sie nur, dass der Code im Rest

101
00:04:18,820 --> 00:04:20,790
‫des Videos und in allen

102
00:04:20,790 --> 00:04:25,090
‫Videos in diesem Kurs natürlich immer noch diese alte falsche Version sein wird,

103
00:04:25,090 --> 00:04:27,270
‫gut, aber tatsächlich im endgültigen Code, der

104
00:04:27,270 --> 00:04:29,240
‫sich im GitHub-Repository befindet, habe

105
00:04:29,240 --> 00:04:32,773
‫ich das bereits behoben und wir habe den richtigen Code drin.

106
00:04:33,610 --> 00:04:37,770
‫Wie auch immer, normalerweise, wenn wir uns für eine Webanwendung anmelden,

107
00:04:37,770 --> 00:04:41,060
‫werden Sie auch automatisch eingeloggt, richtig, also lassen Sie

108
00:04:41,060 --> 00:04:43,500
‫uns das hier sehr schnell implementieren.

109
00:04:43,500 --> 00:04:45,350
‫Also den neuen Benutzer einloggen,

110
00:04:45,350 --> 00:04:48,120
‫sobald er sich angemeldet hat, okay, und denk

111
00:04:48,120 --> 00:04:50,090
‫an den vorherigen Vortrag, wie das

112
00:04:50,090 --> 00:04:51,680
‫funktioniert, naja alles was wir

113
00:04:51,680 --> 00:04:53,440
‫eigentlich tun müssen, ist einen

114
00:04:53,440 --> 00:04:55,350
‫Jason Web Token zu signieren und

115
00:04:55,350 --> 00:04:58,490
‫dann an den Benutzer zurück zu senden , okay, aber

116
00:04:58,490 --> 00:05:01,270
‫jetzt installieren wir zuerst das MPM-Paket, das wir für

117
00:05:01,270 --> 00:05:03,350
‫alles verwenden werden, was mit Jason-Webtoken

118
00:05:03,350 --> 00:05:04,893
‫zu tun hat.

119
00:05:06,160 --> 00:05:08,180
‫Also in unserem anderen Terminal,

120
00:05:08,180 --> 00:05:12,660
‫sagen wir MPM install, Jason Web Token, also all das zusammen so

121
00:05:12,660 --> 00:05:14,370
‫und das sollte dann

122
00:05:16,240 --> 00:05:18,630
‫dieses Paket installieren und lass es

123
00:05:18,630 --> 00:05:19,790
‫uns tatsächlich

124
00:05:19,790 --> 00:05:22,211
‫auf GitHub anschauen, nur um die

125
00:05:22,211 --> 00:05:23,950
‫Dokumentation zu sehen und lass

126
00:05:28,000 --> 00:05:29,380
‫uns Machen Sie

127
00:05:29,380 --> 00:05:31,830
‫das hier, wir brauchen dieses hier

128
00:05:33,370 --> 00:05:38,370
‫zumindest jetzt nicht mehr, und so gelangen wir zur Seite über MPM, und

129
00:05:38,810 --> 00:05:40,300
‫Sie sehen, wie beliebt

130
00:05:40,300 --> 00:05:42,170
‫dieses Paket tatsächlich ist, also

131
00:05:42,170 --> 00:05:45,100
‫haben wir 2. 3 Millionen Downloads

132
00:05:45,100 --> 00:05:47,930
‫pro Woche, das sind wirklich eine Menge Downloads

133
00:05:47,930 --> 00:05:50,730
‫und wir können uns auch hier die Dokumentation

134
00:05:50,730 --> 00:05:53,540
‫ansehen, aber ich persönlich bevorzuge es auf GitHub.

135
00:05:53,540 --> 00:05:56,090
‫Ich finde, es sieht hier viel sauberer aus,

136
00:05:56,090 --> 00:05:58,240
‫und ich bin an dieser

137
00:05:58,240 --> 00:06:02,410
‫Stelle so daran gewöhnt, und deshalb sehe ich es normalerweise nur hier, okay.

138
00:06:02,410 --> 00:06:04,690
‫Wie auch immer, die erste Funktion, die

139
00:06:04,690 --> 00:06:08,070
‫wir hier mit JWT verwenden werden, ist sign, okay, also um

140
00:06:08,070 --> 00:06:11,320
‫im Grunde ein neues Token zu erstellen, und dafür brauchen

141
00:06:11,320 --> 00:06:13,330
‫wir natürlich die Nutzlast, brauchen wir

142
00:06:13,330 --> 00:06:16,080
‫den Schlüssel für das private Geheimnis, das ich erwähnt

143
00:06:16,080 --> 00:06:17,280
‫habe vorher

144
00:06:17,280 --> 00:06:19,750
‫ist das nur auf unserem Server gespeichert und

145
00:06:19,750 --> 00:06:21,607
‫wir müssen den Token signieren und

146
00:06:21,607 --> 00:06:23,830
‫dann können wir einige Optionen weitergeben und

147
00:06:23,830 --> 00:06:26,040
‫wir werden das alles in einer Sekunde

148
00:06:26,040 --> 00:06:29,270
‫tun, ich möchte nur die andere Funktion zeigen, die wir

149
00:06:29,270 --> 00:06:32,040
‫hier haben, und die wir wirklich haben Wir haben

150
00:06:32,040 --> 00:06:34,149
‫hier eine Menge Optionen, zum Beispiel

151
00:06:34,149 --> 00:06:36,353
‫das Ablaufdatum, das wir auch verwenden werden,

152
00:06:38,070 --> 00:06:39,830
‫also all das Zeug und

153
00:06:39,830 --> 00:06:41,600
‫dann müssen wir es überprüfen.

154
00:06:41,600 --> 00:06:44,200
‫Wir haben also auch über den Verifizierungsprozess gesprochen

155
00:06:44,200 --> 00:06:47,700
‫und der ist im Grunde in dieser Funktion implementiert, okay, und

156
00:06:47,700 --> 00:06:49,490
‫das ist der, den wir

157
00:06:49,490 --> 00:06:52,740
‫verwenden werden, wenn wir einen Benutzer anmelden, okay, und das

158
00:06:52,740 --> 00:06:54,610
‫ist wirklich alles, also hast

159
00:06:54,610 --> 00:06:56,858
‫du alles diese verschiedenen Optionen hier,

160
00:06:56,858 --> 00:06:58,400
‫okay, du musst auch

161
00:06:58,400 --> 00:07:01,140
‫dekodieren, aber das ist nicht wirklich wichtig, okay,

162
00:07:01,140 --> 00:07:03,990
‫du siehst also, dass dieses Paket wirklich nur

163
00:07:03,990 --> 00:07:04,980
‫die beiden

164
00:07:04,980 --> 00:07:07,870
‫Funktionalitäten enthält, die wir im vorherigen Video besprochen haben.

165
00:07:07,870 --> 00:07:11,683
‫Also unterschreiben und dann verifizieren, okay.

166
00:07:12,590 --> 00:07:15,060
‫Lassen Sie uns also hierher zurückkehren

167
00:07:15,060 --> 00:07:18,193
‫und tatsächlich mit der Verwendung des Jason-Webtoken-Pakets beginnen.

168
00:07:19,830 --> 00:07:21,363
‫Lassen Sie es

169
00:07:24,380 --> 00:07:26,800
‫uns hier importieren, und es heißt

170
00:07:31,040 --> 00:07:33,920
‫normalerweise einfach JWT und erfordert das Jason-Webtoken.

171
00:07:33,920 --> 00:07:37,053
‫Okay, also lasst uns hier unser Token erstellen,

172
00:07:39,290 --> 00:07:40,460
‫okay, und ich

173
00:07:40,460 --> 00:07:43,710
‫nenne es einfach so, also einfach Token, okay, dann

174
00:07:43,710 --> 00:07:48,080
‫JWT-Punktzeichen, und jetzt ist das erste die Nutzlast, und das ist im

175
00:07:48,080 --> 00:07:50,460
‫Grunde ein Objekt für alle die

176
00:07:50,460 --> 00:07:52,650
‫Daten, die wir im Token

177
00:07:52,650 --> 00:07:55,260
‫speichern werden, und in diesem Fall wollen

178
00:07:55,260 --> 00:07:56,093
‫wir

179
00:07:56,093 --> 00:07:59,410
‫wirklich nur die ID des Benutzers, in Ordnung, also

180
00:07:59,410 --> 00:08:02,210
‫nichts Verrücktes hier, nicht viele Daten, die

181
00:08:02,210 --> 00:08:04,150
‫nicht wirklich wichtig sind.

182
00:08:04,150 --> 00:08:06,890
‫Also sagen wir, dass die ID ist

183
00:08:06,890 --> 00:08:09,550
‫und dann holen wir uns einfach

184
00:08:09,550 --> 00:08:12,830
‫die ID des neuen Benutzers, der gerade erstellt wurde,

185
00:08:12,830 --> 00:08:17,530
‫okay, also neuer Benutzer Punkt und dann denken Sie daran, dass die ID

186
00:08:17,530 --> 00:08:21,460
‫in MonogoDB tatsächlich Unterstrich-ID heißt, in Ordnung, und so ist

187
00:08:21,460 --> 00:08:23,760
‫das Objekt mit den Daten,

188
00:08:23,760 --> 00:08:27,083
‫der Nutzlast, die wir in unser JWT einfügen möchten.

189
00:08:27,920 --> 00:08:30,820
‫Als nächstes brauchen wir das Geheimnis, okay, also

190
00:08:30,820 --> 00:08:32,090
‫im Grunde eine

191
00:08:33,580 --> 00:08:35,350
‫Zeichenfolge für ein Geheimnis,

192
00:08:35,350 --> 00:08:38,530
‫okay, das ist natürlich ein schreckliches, okay, das ist

193
00:08:38,530 --> 00:08:40,340
‫nur eine Art Platzhalter, denn

194
00:08:40,340 --> 00:08:42,770
‫eigentlich ist unsere Konfigurationsdatei ein perfekter

195
00:08:42,770 --> 00:08:46,720
‫Ort um diese Art von geheimen Daten zu speichern, also wie

196
00:08:46,720 --> 00:08:49,460
‫zum Beispiel das Passwort, also lass uns

197
00:08:49,460 --> 00:08:53,633
‫hier hinzufügen und bearbeiten, okay, also nennen wir es JWT, geheim,

198
00:08:55,720 --> 00:09:00,070
‫und natürlich der Name, den wir hier geben, ist nicht wirklich wichtig,

199
00:09:00,070 --> 00:09:02,220
‫aber was zählt, ist das Geheimnis,

200
00:09:02,220 --> 00:09:03,430
‫das

201
00:09:03,430 --> 00:09:06,920
‫wir hier angeben, gut, denn bei Verwendung der Standard-HSA-256-Verschlüsselung

202
00:09:06,920 --> 00:09:11,920
‫für die Signatur sollte das Geheimnis mindestens 32 Zeichen lang sein, gut, aber je

203
00:09:11,940 --> 00:09:15,320
‫länger, desto besser, und hier kommen viele Tutorials da

204
00:09:15,320 --> 00:09:17,880
‫draußen scheitern, einige von ihnen geben hier

205
00:09:17,880 --> 00:09:19,847
‫einfach eine sehr kurze Zeichenfolge

206
00:09:19,847 --> 00:09:22,240
‫ein, aber das ist wieder nicht

207
00:09:22,240 --> 00:09:25,280
‫ideal, also sollten Sie für die beste Verschlüsselung

208
00:09:25,280 --> 00:09:27,010
‫der Signatur wieder mindestens

209
00:09:27,010 --> 00:09:29,290
‫zweiunddreißig Zeichen verwenden, also werde ich

210
00:09:29,290 --> 00:09:32,940
‫jetzt mein Geheimnis hier schaffen aber du solltest wirklich wirklich

211
00:09:32,940 --> 00:09:34,584
‫einen anderen benutzen, okay,

212
00:09:34,584 --> 00:09:37,763
‫bitte benutze nicht den sa mir eins, wie ich

213
00:09:37,763 --> 00:09:40,490
‫es tue, weil das ein Sicherheitsproblem für

214
00:09:40,490 --> 00:09:42,590
‫Ihre Anwendung werden könnte, okay,

215
00:09:42,590 --> 00:09:44,180
‫verwenden Sie immer ein

216
00:09:44,180 --> 00:09:47,460
‫einzigartiges Geheimnis für Ihre Anwendungen und nie das gleiche,

217
00:09:47,460 --> 00:09:49,400
‫in Ordnung, und vor allem

218
00:09:49,400 --> 00:09:52,100
‫nicht das von jemand anderem, also definitiv

219
00:09:52,100 --> 00:09:54,883
‫nicht das, das ich habe schreibe jetzt.

220
00:09:56,750 --> 00:09:57,820
‫Das kann also

221
00:09:57,820 --> 00:10:00,160
‫alles sein, es müssen keine seltsamen Charaktere

222
00:10:00,160 --> 00:10:02,390
‫oder so sein, ich bevorzuge es,

223
00:10:02,390 --> 00:10:04,443
‫einen Satz wie diesen zu

224
00:10:07,860 --> 00:10:10,903
‫verwenden, mein ultrasicheres und ultralanges Geheimnis, also was ist

225
00:10:11,990 --> 00:10:13,363
‫hier passiert, das sollte

226
00:10:14,690 --> 00:10:17,670
‫sowieso zweiunddreißig Zeichen lang sein und so Dies ist

227
00:10:17,670 --> 00:10:18,730
‫der,

228
00:10:18,730 --> 00:10:21,400
‫den wir für meine Jason-Webtoken verwenden werden, aber

229
00:10:21,400 --> 00:10:24,193
‫bitte verwenden Sie wieder einen anderen, in Ordnung.

230
00:10:25,489 --> 00:10:29,290
‫Wie auch immer, kehren wir hier zum Authentifizierungscontroller zurück und verwenden

231
00:10:29,290 --> 00:10:30,733
‫ihn jetzt tatsächlich.

232
00:10:31,810 --> 00:10:34,970
‫Denken Sie also daran,

233
00:10:34,970 --> 00:10:39,913
‫dass eine Umgebungsvariable Prozesspunkt Ende Punkt JWT-Geheimnis ist,

234
00:10:41,100 --> 00:10:42,100
‫okay.

235
00:10:42,100 --> 00:10:44,490
‫An diesem Punkt haben wir also die Nutzlast

236
00:10:44,490 --> 00:10:46,320
‫und wir haben das Geheimnis.

237
00:10:46,320 --> 00:10:49,400
‫Der Token-Header wird tatsächlich automatisch erstellt, aber jetzt

238
00:10:49,400 --> 00:10:50,670
‫können wir

239
00:10:50,670 --> 00:10:52,390
‫auch einige Optionen weitergeben, und

240
00:10:52,390 --> 00:10:54,470
‫die Option, die ich übergeben

241
00:10:54,470 --> 00:10:57,390
‫werde, ist, wann das JWT ablaufen sollte.

242
00:10:57,390 --> 00:10:59,600
‫Das bedeutet also, dass nach

243
00:10:59,600 --> 00:11:01,240
‫der Zeit, die wir

244
00:11:01,240 --> 00:11:03,110
‫hier verstreichen werden, der

245
00:11:03,110 --> 00:11:04,240
‫Jason-Webtoken

246
00:11:04,240 --> 00:11:06,890
‫nicht mehr gültig ist, auch wenn er

247
00:11:06,890 --> 00:11:08,060
‫sonst korrekt verifiziert

248
00:11:08,060 --> 00:11:10,570
‫würde, in Ordnung, also im Wesentlichen

249
00:11:10,570 --> 00:11:12,670
‫zum Abmelden eines Benutzers nach

250
00:11:12,670 --> 00:11:15,320
‫a bestimmten Zeitraum einfach als Sicherheitsmaßnahme, okay.

251
00:11:15,320 --> 00:11:19,500
‫Lassen Sie uns diese Ablaufzeit hier also auch

252
00:11:19,500 --> 00:11:21,493
‫als Konfigurationsvariable definieren,

253
00:11:23,320 --> 00:11:28,320
‫damit JWT abläuft und hier natürlich die gleiche Zeit wie

254
00:11:28,360 --> 00:11:30,536
‫von mir angegeben verwendet

255
00:11:30,536 --> 00:11:31,950
‫werden kann.

256
00:11:31,950 --> 00:11:33,630
‫Wir können also eine

257
00:11:33,630 --> 00:11:36,170
‫spezielle Zeichenfolge wie zum Beispiel 90D verwenden

258
00:11:36,170 --> 00:11:38,807
‫und der Signaturalgorithmus wird dann automatisch herausfinden,

259
00:11:38,807 --> 00:11:42,350
‫dass dies neunzig Tage bedeutet, okay, du könntest auch zehn

260
00:11:42,350 --> 00:11:47,350
‫Stunden oder fünf Minuten oder drei Sekunden oder so ähnlich verwenden, oder einfach eine

261
00:11:47,360 --> 00:11:49,720
‫beliebige Zahl , die dann als

262
00:11:49,720 --> 00:11:50,800
‫Millisekunden behandelt

263
00:11:50,800 --> 00:11:53,330
‫werden, aber ich denke, es ist am

264
00:11:53,330 --> 00:11:55,820
‫besten, einfach neunzig oder so zu

265
00:11:55,820 --> 00:11:59,350
‫verwenden D, also in diesem Fall neunzig Tage, in Ordnung,

266
00:11:59,350 --> 00:12:01,120
‫und so wird das

267
00:12:01,120 --> 00:12:03,860
‫JWT nach neunzig Tagen wieder nicht mehr gültig

268
00:12:03,860 --> 00:12:07,770
‫sein, selbst wenn die Unterschrift ist korrekt und alles ist gültig.

269
00:12:07,770 --> 00:12:11,503
‫Okay, also wieder nur als zusätzliche Sicherheitsmaßnahme, okay, also

270
00:12:12,880 --> 00:12:13,713
‫diese

271
00:12:13,713 --> 00:12:17,180
‫Optionen wie immer, wir haben sie als Objekt

272
00:12:17,180 --> 00:12:19,820
‫übergeben und dann spezifizieren wir das

273
00:12:19,820 --> 00:12:24,640
‫läuft ab in, also läuft ab und dann verarbeiten Sie Punktende und

274
00:12:26,120 --> 00:12:31,120
‫dann JWT läuft ab in, okay, und dies hier fügt dann der

275
00:12:32,050 --> 00:12:34,190
‫Nutzlast einige zusätzliche Daten hinzu,

276
00:12:34,190 --> 00:12:35,530
‫aber das ist

277
00:12:35,530 --> 00:12:37,480
‫natürlich überhaupt kein Problem.

278
00:12:38,410 --> 00:12:40,220
‫Also haben wir gerade ein Token

279
00:12:40,220 --> 00:12:41,500
‫erstellt, jetzt müssen wir

280
00:12:41,500 --> 00:12:43,463
‫es nur noch an den Client senden.

281
00:12:44,910 --> 00:12:48,240
‫Also lasst es uns hier vor den Benutzer stellen und

282
00:12:48,240 --> 00:12:50,420
‫dann ist es tatsächlich soweit.

283
00:12:50,420 --> 00:12:53,350
‫Das ist wirklich alles, was wir tun müssen, um einen

284
00:12:53,350 --> 00:12:54,840
‫neuen Benutzer anzumelden, denn wir

285
00:12:54,840 --> 00:12:56,250
‫prüfen im Moment nicht,

286
00:12:56,250 --> 00:12:59,530
‫ob ein Passwort korrekt ist oder ob der Benutzer tatsächlich in

287
00:12:59,530 --> 00:13:00,970
‫der Datenbank existiert, da

288
00:13:00,970 --> 00:13:02,890
‫der Benutzer in diesem Fall in

289
00:13:02,890 --> 00:13:03,840
‫diesem Fall

290
00:13:03,840 --> 00:13:05,880
‫wirklich gerade erstellt wurde, und Also

291
00:13:05,880 --> 00:13:08,070
‫haben wir den Benutzer sofort in die

292
00:13:08,070 --> 00:13:10,010
‫Anwendung eingeloggt, indem wir ein Token

293
00:13:10,010 --> 00:13:12,780
‫gesendet haben, okay, und die Verwendung von Client sollte

294
00:13:12,780 --> 00:13:15,430
‫dann dieses Token in gewisser Weise speichern, so

295
00:13:15,430 --> 00:13:16,760
‫wie wir es zuvor

296
00:13:16,760 --> 00:13:21,370
‫in der vorherigen Vorlesung besprochen haben, okay, also speichern wir es ab hier, und lass

297
00:13:21,370 --> 00:13:24,160
‫es uns tatsächlich ausprobieren, okay, also lass uns meine

298
00:13:24,160 --> 00:13:27,040
‫alte Adresse hier, hello@jonas. io, senden wir es

299
00:13:27,040 --> 00:13:29,210
‫und warten wir darauf und tatsächlich,

300
00:13:29,210 --> 00:13:32,910
‫hier ist unser Jason-Webtoken, also herzlichen Glückwunsch, du hast gerade

301
00:13:32,910 --> 00:13:35,050
‫deinen allerersten Jason-Webtoken erstellt, der ein

302
00:13:35,050 --> 00:13:37,490
‫bisschen so aussehen sollte, und natürlich wird

303
00:13:37,490 --> 00:13:39,760
‫er nicht genau so aussehen gleich,

304
00:13:39,760 --> 00:13:42,310
‫denn unser Geheimnis ist auch nicht dasselbe,

305
00:13:42,310 --> 00:13:45,360
‫richtig, und was ich euch jetzt zeigen möchte,

306
00:13:45,360 --> 00:13:46,770
‫ist der JWT-Debugger,

307
00:13:46,770 --> 00:13:48,810
‫den ich euch als Screenshot

308
00:13:48,810 --> 00:13:50,730
‫weiter oben im letzten Video

309
00:13:50,730 --> 00:13:52,010
‫gezeigt habe.

310
00:13:52,010 --> 00:13:54,140
‫Lassen Sie uns also weitermachen und

311
00:13:56,050 --> 00:14:00,453
‫dieses Token kopieren und dann zu JWT gehen. io, okay, dann haben

312
00:14:02,850 --> 00:14:03,683
‫wir

313
00:14:04,540 --> 00:14:06,790
‫hier unten den Debugger und

314
00:14:06,790 --> 00:14:10,683
‫also lasst uns diesen hier löschen und unsere setzen

315
00:14:12,170 --> 00:14:14,830
‫und sofort sehen Sie, dass unsere

316
00:14:14,830 --> 00:14:17,580
‫Signatur ungültig ist, aber das liegt

317
00:14:17,580 --> 00:14:20,570
‫daran, dass die Sign-Funktion diese beiden Eigenschaften

318
00:14:20,570 --> 00:14:22,090
‫hier bearbeitet, weil

319
00:14:22,090 --> 00:14:25,140
‫wir ein Ablaufdatum angegeben haben Datum grundsätzlich.

320
00:14:25,140 --> 00:14:27,600
‫Das hier wird also ausgegeben um,

321
00:14:27,600 --> 00:14:30,223
‫und das ist die Ablaufzeit, okay, also

322
00:14:31,450 --> 00:14:35,050
‫wenn wir diese beiden von hier entfernen, werden Sie sehen,

323
00:14:35,050 --> 00:14:36,350
‫dass diese

324
00:14:36,350 --> 00:14:38,620
‫Signatur jetzt tatsächlich verifiziert ist, okay

325
00:14:38,620 --> 00:14:42,260
‫also, was hier wichtig zu beachten ist, ist natürlich der

326
00:14:42,260 --> 00:14:44,815
‫Header ist in Ordnung, es ist im

327
00:14:44,815 --> 00:14:47,840
‫Grunde leicht zu entschlüsseln, und damit Sie, dass

328
00:14:47,840 --> 00:14:50,820
‫wir nichts davon angegeben haben, war es das

329
00:14:50,820 --> 00:14:54,530
‫Jason-Web-Token-Paket, das es für uns getan hat, aber hier ist

330
00:14:54,530 --> 00:14:58,560
‫tatsächlich die Nutzlast, die wir angegeben haben, also wenn wir einen

331
00:14:58,560 --> 00:15:00,800
‫Blick darauf werfen bei dieser

332
00:15:00,800 --> 00:15:03,860
‫ID sollte es genau das gleiche sein wie

333
00:15:03,860 --> 00:15:06,343
‫bei postman, also auf sechs OF

334
00:15:07,960 --> 00:15:11,493
‫enden, und so ist es tatsächlich genau das gleiche richtig,

335
00:15:13,600 --> 00:15:16,260
‫ok, also diese beiden hier sind offen

336
00:15:16,260 --> 00:15:19,920
‫und dann die Unterschrift natürlich können wir nicht wirklich sehen,

337
00:15:19,920 --> 00:15:22,930
‫denn unser Geheimnis ist natürlich genau das, es

338
00:15:22,930 --> 00:15:26,270
‫ist wirklich geheim, in Ordnung, das war also nur,

339
00:15:26,270 --> 00:15:29,600
‫um Ihnen zu zeigen, dass alles funktioniert, und lass

340
00:15:29,600 --> 00:15:31,242
‫uns das schließen, und

341
00:15:31,242 --> 00:15:35,550
‫ja, wir können keine Benutzer einloggen, aber nur wenn sich der Benutzer

342
00:15:35,550 --> 00:15:38,050
‫gerade angemeldet hat, denn in diesem

343
00:15:38,050 --> 00:15:40,980
‫Fall müssen wir die E-Mail in der Datenbank

344
00:15:40,980 --> 00:15:42,290
‫nicht überprüfen und

345
00:15:42,290 --> 00:15:44,490
‫auch nicht die Passwort, ok.

346
00:15:44,490 --> 00:15:47,400
‫All dies zu tun ist also ein viel

347
00:15:47,400 --> 00:15:49,340
‫komplexerer Prozess, und das werden

348
00:15:49,340 --> 00:15:50,940
‫wir in der nächsten

349
00:15:50,940 --> 00:15:53,660
‫Vorlesung tun. Als nächstes werden wir die

350
00:15:53,660 --> 00:15:56,543
‫Benutzer anhand ihrer E-Mail-Adresse und ihres Passworts anmelden.

