1
00:00:03,920 --> 00:00:07,970
Zeit für die dritte Aufgabe in diesem Kurs.

2
00:00:07,970 --> 00:00:13,110
In diesem Modul haben wir die Benutzerauthentifizierung sehr detailliert untersucht.

3
00:00:13,110 --> 00:00:14,705
Nun, in dieser Zuweisung,

4
00:00:14,705 --> 00:00:17,905
werden wir weiter an der Benutzerauthentifizierung arbeiten.

5
00:00:17,905 --> 00:00:22,965
Wir werden noch eine weitere Kategorie von Konten hinzufügen, die als Admin bezeichnet werden.

6
00:00:22,965 --> 00:00:26,880
Ein Admin-Konto ist ein Super-Konto, das

7
00:00:26,880 --> 00:00:31,460
viele Privilegien hat, verschiedene Operationen auszuführen.

8
00:00:31,460 --> 00:00:37,410
Ein gewöhnliches Benutzerkonto kann nur bestimmte Operationen auf unserem Server ausführen.

9
00:00:37,410 --> 00:00:43,445
Ebenso

10
00:00:43,445 --> 00:00:49,610
kann eine nicht registrierte Anfrage, die von einem nicht angemeldeten Client eingeht, nur bestimmte Vorgänge auf unserem Server ausführen.

11
00:00:49,610 --> 00:00:52,400
Jetzt werden wir unseren Server so modifizieren

12
00:00:52,400 --> 00:00:55,865
, dass Get Operationen von jedermann ausgeführt werden können.

13
00:00:55,865 --> 00:01:00,350
Sie müssen sich nicht beim System anmelden, um Abrufvorgänge auf

14
00:01:00,350 --> 00:01:06,110
den verschiedenen restlichen API-Endpunkten durchzuführen, außer bei der Übermittlung von Kommentaren.

15
00:01:06,110 --> 00:01:11,625
Für die verbleibenden Vorgänge auf den restlichen API-Endpunkten,

16
00:01:11,625 --> 00:01:15,365
den POST-Put- und Löschvorgängen,

17
00:01:15,365 --> 00:01:20,190
werden diese nur von Administratorbenutzern ausgeführt werden,

18
00:01:20,190 --> 00:01:23,780
ein normaler Benutzer kann diese Vorgänge nicht ausführen.

19
00:01:23,780 --> 00:01:30,215
Offensichtlich möchten Sie nicht, dass ein gewöhnlicher Benutzer neue Gerichte oder Werbeaktionen

20
00:01:30,215 --> 00:01:34,975
oder Führungsinformationen einreicht oder vorhandene Informationen ändert

21
00:01:34,975 --> 00:01:37,780
oder sogar diese vorhandenen Informationen löscht.

22
00:01:37,780 --> 00:01:45,290
Dies sollte nur das Privileg des Systemadministrators für unseren Server sein.

23
00:01:45,290 --> 00:01:50,870
Außerdem werden wir sicherstellen, dass ein gewöhnlicher Benutzer

24
00:01:50,870 --> 00:01:56,010
Kommentare zu bestimmten Gerichten posten kann, das ist akzeptabel.

25
00:01:56,010 --> 00:02:03,015
Ebenso kann ein gewöhnlicher Benutzer Kommentare aktualisieren und löschen, die er gepostet hat.

26
00:02:03,015 --> 00:02:10,230
Andere Benutzer oder sogar der Administrator können Kommentare, die von einem anderen Benutzer veröffentlicht wurden, nicht aktualisieren oder löschen.

27
00:02:10,230 --> 00:02:14,565
Dies ist also eine weitere Einschränkung, die wir in unserem Server platzieren werden.

28
00:02:14,565 --> 00:02:18,335
Lassen Sie uns nun weiter gehen und untersuchen, wie wir

29
00:02:18,335 --> 00:02:23,299
dies umsetzen werden und wie genau unser Server diese Operationen durchführt.

30
00:02:23,299 --> 00:02:26,720
In erster Linie werde ich Ihnen zeigen, wie Sie

31
00:02:26,720 --> 00:02:31,240
ein Admin-Konto in Ihrem System erstellen würden.

32
00:02:31,240 --> 00:02:33,770
Sie werden feststellen, dass wir hinter

33
00:02:33,770 --> 00:02:37,325
die Kulissen gehen müssen, um ein Admin-Konto zu erstellen, einfach weil

34
00:02:37,325 --> 00:02:41,930
wir nicht möchten, dass ein Admin-Konto erstellt wird, indem wir

35
00:02:41,930 --> 00:02:47,030
den Anmeldevorgang für unsere Benutzer/Anmeldekonto durchführen.

36
00:02:47,030 --> 00:02:50,670
Dies wird unseren Server anfällig für Angriffe machen.

37
00:02:50,670 --> 00:02:54,185
So kann ein Admin-Konto nur

38
00:02:54,185 --> 00:02:59,085
hinter den Kulissen eingerichtet werden, indem direkt auf die Datenbank zugegriffen wird.

39
00:02:59,085 --> 00:03:02,090
Also, schauen wir uns an, wie wir

40
00:03:02,090 --> 00:03:08,340
dies in der Illustration machen, die ich Ihnen gleich danach zeigen werde.

41
00:03:08,380 --> 00:03:11,700
Nun, um unsere Datenbank zu untersuchen,

42
00:03:11,700 --> 00:03:15,865
lassen Sie mich die Mongo Ripple an der Eingabeaufforderung starten

43
00:03:15,865 --> 00:03:21,740
und dann zum Verwirrungsordner gehen und dann

44
00:03:21,740 --> 00:03:27,830
die Benutzer untersuchen, die in meiner Datenbank registriert sind.

45
00:03:27,830 --> 00:03:32,015
So können Sie sehen, dass ich nur einen Benutzer registriert habe.

46
00:03:32,015 --> 00:03:35,735
Lassen Sie mich also zwei zusätzliche Konten einrichten,

47
00:03:35,735 --> 00:03:37,695
eines für einen normalen Benutzer

48
00:03:37,695 --> 00:03:40,280
und eines, das ein Administrator sein wird.

49
00:03:40,280 --> 00:03:47,415
Also, wir werden den Admin und den zweiten Benutzer auch von unserem Anmeldepunkt aus registrieren,

50
00:03:47,415 --> 00:03:51,935
danach werden sie auf die Mongo Ripple zurückkehren und dann das Admin-Konto

51
00:03:51,935 --> 00:03:57,110
explizit einrichten, indem sie den Datensatz in unserer Datenbank ändern.

52
00:03:57,110 --> 00:03:58,935
Gehen Sie zu Postman Pin,

53
00:03:58,935 --> 00:04:03,780
lassen Sie mich zwei zusätzliche Benutzer registrieren.

54
00:04:03,780 --> 00:04:07,755
Also, wir hatten früher einen Benutzer mit diesem Namen angemeldet,

55
00:04:07,755 --> 00:04:15,660
also werde ich einen anderen Benutzer in meinem System registrieren,

56
00:04:15,660 --> 00:04:20,945
und so ist ein zweiter Benutzer jetzt erfolgreich registriert.

57
00:04:20,945 --> 00:04:24,660
Lassen Sie mich nun auch ein Admin-Konto registrieren.

58
00:04:24,660 --> 00:04:25,880
Also, für das Admin-Konto,

59
00:04:25,880 --> 00:04:31,910
werde ich den Benutzernamen als admin einrichten und dann einen Admin-Benutzer registrieren.

60
00:04:31,910 --> 00:04:38,545
Wir sehen also, dass wir nun zwei neue Konten zu unserem System hinzugefügt haben.

61
00:04:38,545 --> 00:04:40,455
Gehen Sie zum Mongo Ripple,

62
00:04:40,455 --> 00:04:43,870
lassen Sie mich noch einmal die

63
00:04:43,870 --> 00:04:51,110
db.user.find () wiederholen und lassen Sie mich es hübsch machen, damit es einfacher zu lesen aussieht.

64
00:04:51,110 --> 00:04:52,845
Also, wenn ich das tue,

65
00:04:52,845 --> 00:04:58,655
können Sie sehen, dass wir hier ein Admin-Konto mit dem Benutzernamen als Admin haben.

66
00:04:58,655 --> 00:05:00,770
Ignoriere den Vor- und Nachnamen,

67
00:05:00,770 --> 00:05:05,190
ich werde diesen Vor- und Nachnamen so einrichten, dass er für alle drei gleich ist.

68
00:05:05,190 --> 00:05:12,800
Dann haben wir das andere Benutzerkonto, das ich mit dem Benutzernamen hier eingerichtet habe,

69
00:05:12,800 --> 00:05:17,190
und das dritte Benutzerkonto, das wir bereits in unserer Datenbank hatten.

70
00:05:17,190 --> 00:05:19,750
Also, jetzt haben wir drei Benutzerkonten:

71
00:05:19,750 --> 00:05:22,215
zwei Benutzerkonten hier

72
00:05:22,215 --> 00:05:23,860
und ein Admin-Konto.

73
00:05:23,860 --> 00:05:28,395
Nun werden Sie natürlich sehen, dass

74
00:05:28,395 --> 00:05:32,690
wir in den Benutzerkonten dieses Flag als Admin-Flag genannt haben, das für

75
00:05:32,690 --> 00:05:38,100
jedes Konto, das auf diesem /users/signup-Endpunkt angemeldet ist, auf false gesetzt ist.

76
00:05:38,100 --> 00:05:40,740
Dies ist die Standardmethode, mit der Sie Konten einrichten sollten.

77
00:05:40,740 --> 00:05:44,465
Sie können einem Benutzer nicht erlauben, ein Administratorkonto zu konfigurieren,

78
00:05:44,465 --> 00:05:48,945
indem Sie etwas direkt auf dem restlichen API-Endpunkt ausführen.

79
00:05:48,945 --> 00:05:53,600
Stattdessen werden wir hinter die Kulissen gehen und dann in der Mongo Ripple,

80
00:05:53,600 --> 00:06:00,510
werde ich diesen Datensatz für den Admin-Benutzer ändern, indem wir

81
00:06:00,510 --> 00:06:07,920
db.users.update sagen und dann

82
00:06:07,920 --> 00:06:15,205
geben wir den Benutzernamen als admin hier.

83
00:06:15,205 --> 00:06:25,470
Also, wir werden Vers-Datensatz aktualisieren und dann sagen wir {$set:

84
00:06:25,470 --> 00:06:31,520
erinnern Sie sich, wie wir die MongoDB manipuliert haben, also

85
00:06:31,520 --> 00:06:39,180
sagen wir {$set: {"admin“: „true“}}.

86
00:06:39,180 --> 00:06:42,980
Also, was wir hier tun, ist, dass wir nach

87
00:06:42,980 --> 00:06:47,810
diesem Benutzerkonto mit dem Benutzernamen admin suchen,

88
00:06:47,810 --> 00:06:52,190
und dann richten wir das Admin-Flag auf true

89
00:06:52,190 --> 00:06:58,125
hier, indem wir die $set-Option verwenden.

90
00:06:58,125 --> 00:07:02,520
So würden wir ein Konto aktualisieren, um ein Admin-Konto zu sein.

91
00:07:02,520 --> 00:07:08,010
Sie sehen also, dass dies die Ergebnisse geändert hat.

92
00:07:08,010 --> 00:07:11,880
Also, lassen Sie uns noch einmal die Konten überprüfen.

93
00:07:11,880 --> 00:07:13,410
Wenn Sie nun das Konto überprüfen,

94
00:07:13,410 --> 00:07:16,140
sehen Sie, dass für das Admin-Konto

95
00:07:16,140 --> 00:07:19,475
jetzt das Admin-Flag auf true gesetzt

96
00:07:19,475 --> 00:07:22,810
ist, so dass Sie am Ende ein Admin-Konto erstellen.

97
00:07:22,810 --> 00:07:27,920
Nun hat das Admin-Konto, wie wir es erwarten würden, zusätzliche Privilegien.

98
00:07:27,920 --> 00:07:33,400
Also, sobald Sie diese Zuweisung abgeschlossen haben,

99
00:07:33,400 --> 00:07:38,525
würden Sie feststellen, dass die get-Operation von jedem Benutzer auf

100
00:07:38,525 --> 00:07:45,080
dem /dishes/dishes/aspecificdishendpoint/promotions

101
00:07:45,080 --> 00:07:50,570
und dem /promotions/specificpromotionendpunkt ausgeführt werden kann und ähnlich

102
00:07:50,570 --> 00:07:52,985
für die Führer in Punkten auch.

103
00:07:52,985 --> 00:07:55,590
Die POST-,

104
00:07:55,590 --> 00:08:02,195
Put- und Löschvorgänge auf diesen Endpunkten können jedoch nur von Administratorbenutzern ausgeführt werden.

105
00:08:02,195 --> 00:08:08,110
Nun, zusätzlich, die Kommentare Endpunkt,

106
00:08:08,110 --> 00:08:14,110
würden wir nur einem registrierten Benutzer erlauben, der sich angemeldet hat, um

107
00:08:14,110 --> 00:08:20,835
auf Kommentare für ein bestimmtes Gericht zuzugreifen,

108
00:08:20,835 --> 00:08:25,990
werden wir es einem angemeldeten Benutzer erlauben, Kommentare zu posten.

109
00:08:25,990 --> 00:08:28,730
Wir haben dies bereits in der Übung eingerichtet.

110
00:08:28,730 --> 00:08:31,290
Wenn der Benutzer den Kommentar veröffentlicht,

111
00:08:31,290 --> 00:08:34,150
haben wir dafür gesorgt, dass wir

112
00:08:34,150 --> 00:08:37,150
die Authentizität des Benutzers überprüfen und dann, wenn der Kommentar veröffentlicht wird,

113
00:08:37,150 --> 00:08:44,060
haben wir die Autoren-ID für den Kommentar mit der Benutzer-ID eingerichtet. Das

114
00:08:44,060 --> 00:08:46,140
haben wir also bereits abgeschlossen.

115
00:08:46,140 --> 00:08:48,625
Aber jetzt

116
00:08:59,480 --> 00:09:04,180
darf nur der Benutzer, der den spezifischen Kommentar eingereicht hat, für die Put- und Löschvorgänge für Kommentare ausführen und löschen, Operationen für seine eigenen Kommentare.

117
00:09:04,180 --> 00:09:08,480
Jeder andere Benutzer kann die Kommentare einer anderen Person nicht ändern.

118
00:09:08,480 --> 00:09:13,355
In ähnlicher Weise kann selbst der Administrator die Kommentare anderer nicht ändern

119
00:09:13,355 --> 00:09:14,960
oder den Kommentar eines anderen löschen.

120
00:09:14,960 --> 00:09:18,850
Also, das ist der zweite Teil dieser Aufgabe, den Sie tun werden.

121
00:09:18,850 --> 00:09:22,910
Der dritte Teil ist, dass ein Administrator

122
00:09:22,910 --> 00:09:31,115
den Endpunkt /users abfragen und nach der Liste der registrierten Benutzer fragen kann.

123
00:09:31,115 --> 00:09:35,090
Kein anderer normaler Benutzer kann diese Abfrage ausführen.

124
00:09:35,090 --> 00:09:38,550
Also, das ist die andere Einschränkung, die wir dort reinlegen werden.

125
00:09:38,550 --> 00:09:42,745
Um zu überprüfen, ob ein Benutzer ein Administrator ist,

126
00:09:42,745 --> 00:09:46,770
werden wir zuerst überprüfen, ob der Benutzer ein registrierter Benutzer ist.

127
00:09:46,770 --> 00:09:51,470
Also, die Verifizierungsbenutzerfunktion, die wir bereits in der

128
00:09:51,470 --> 00:09:56,450
authenticate.js implementiert haben, sollte auch dort angewendet werden, wo Sie nach dem Admin suchen müssen.

129
00:09:56,450 --> 00:09:59,855
Zuerst überprüfen Sie, dass es sich um einen verifizierten Benutzer handelt, danach

130
00:09:59,855 --> 00:10:05,795
werden Sie eine weitere Funktion namens VerifyAdmin in der

131
00:10:05,795 --> 00:10:12,285
Datei authenticate.js einführen, die überprüft, ob der Benutzer ein Administrator ist.

132
00:10:12,285 --> 00:10:15,190
Nun, um zu überprüfen, ob ein Benutzer ein Administrator ist,

133
00:10:15,190 --> 00:10:19,900
müssen Sie nur den rec.user überprüfen, der sich auf

134
00:10:19,900 --> 00:10:24,855
dem Anforderungsobjekt rec.user befindet,

135
00:10:24,855 --> 00:10:28,325
überprüfen Sie, ob das Admin-Flag wahr ist oder nicht.

136
00:10:28,325 --> 00:10:30,375
Wenn das Admin-Flag wahr ist,

137
00:10:30,375 --> 00:10:39,315
erlauben Sie den normalen Prozess, weiter zum [unhörbaren] passieren zu gehen.

138
00:10:39,315 --> 00:10:41,570
Wenn der Benutzer kein Administrator ist,

139
00:10:41,570 --> 00:10:49,075
generieren Sie einen Fehler und senden eine Fehlermeldung zurück an die Client-Seite.

140
00:10:49,075 --> 00:10:53,945
So werden wir das Admin-Benutzerkonto behandeln.

141
00:10:53,945 --> 00:11:03,165
Nun, wenn ein Benutzer versucht, seine eigenen Kommentare zu ändern oder zu löschen,

142
00:11:03,165 --> 00:11:06,320
müssen wir überprüfen, um sicherzustellen, dass der Autor des Kommentars der

143
00:11:06,320 --> 00:11:10,245
gleiche ist wie der Benutzer, der versucht, den Kommentar zu ändern.

144
00:11:10,245 --> 00:11:13,085
Jetzt hat der rec.user auch das ID-Feld,

145
00:11:13,085 --> 00:11:16,860
also müssen Sie das mit dem Autorenfeld des Kommentars überprüfen.

146
00:11:16,860 --> 00:11:18,255
Wenn diese beiden übereinstimmen,

147
00:11:18,255 --> 00:11:22,390
erlauben Sie dem Benutzer, die Put- oder Löschvorgänge auszuführen.

148
00:11:22,390 --> 00:11:24,050
Wenn sie nicht übereinstimmen,

149
00:11:24,050 --> 00:11:31,190
werden Sie die Put- oder Löschvorgänge für diesen bestimmten Kommentar nicht zulassen.

150
00:11:31,190 --> 00:11:33,590
Dies ist also der andere Aspekt, den Sie

151
00:11:33,590 --> 00:11:37,185
als Teil Ihrer dritten Aufgabe implementieren werden.

152
00:11:37,185 --> 00:11:40,420
Schauen wir uns an, wie all diese Dinge funktionieren,

153
00:11:40,420 --> 00:11:44,500
indem Postman verschiedene Operationen auf unserem Server ausführen.

154
00:11:44,500 --> 00:11:46,545
Zurück zu Postman,

155
00:11:46,545 --> 00:11:49,725
lassen Sie mich zuerst eine GET-Operation auf

156
00:11:49,725 --> 00:11:53,920
Geschirr durchführen, um nur zu überprüfen, was in meiner Datenbank ist.

157
00:11:53,920 --> 00:11:56,140
Wenn ich also eine GET-Operation an den Gerichten durchführe,

158
00:11:56,140 --> 00:12:00,270
beachten Sie, dass ich keine Authentifizierung in den Header lege.

159
00:12:00,270 --> 00:12:02,500
GET-Operation ist von jedem erlaubt.

160
00:12:02,500 --> 00:12:04,420
Also, wenn ich die GET-Operation

161
00:12:04,420 --> 00:12:13,985
durchführe, kann ich sehen, dass ich bereits ein Gericht mit einem Kommentar in diesem Gericht habe.

162
00:12:13,985 --> 00:12:18,900
Dieser Kommentar wurde bereits von diesem Benutzer gepostet.

163
00:12:18,900 --> 00:12:23,895
Also, wir haben bereits ein Gericht im System dort.

164
00:12:23,895 --> 00:12:26,520
Also, das ist völlig in Ordnung,

165
00:12:26,520 --> 00:12:28,405
ich werde das Gericht löschen.

166
00:12:28,405 --> 00:12:29,875
Nun, um das Gericht zu löschen,

167
00:12:29,875 --> 00:12:33,855
offensichtlich, dass die Operation nicht von einem gewöhnlichen Benutzer durchgeführt werden kann.

168
00:12:33,855 --> 00:12:36,500
Also, lassen Sie mich als anmelden,

169
00:12:36,500 --> 00:12:40,310
damit Sie sehen können, dass ich mich als normaler Benutzer einlogge.

170
00:12:40,310 --> 00:12:44,940
Also, lassen Sie mich als normaler Benutzer einloggen.

171
00:12:44,940 --> 00:12:47,140
Also, wenn ich mich einlogge, bekomme ich das Token.

172
00:12:47,140 --> 00:12:49,725
Also, ich werde dieses Token kopieren und speichern.

173
00:12:49,725 --> 00:12:53,845
Nun, da ich mein Token habe,

174
00:12:53,845 --> 00:12:58,770
lassen Sie mich eine DELETE-Operation auf dem Geschirr durchführen.

175
00:12:58,770 --> 00:13:01,985
Also, wenn ich zur DELETE-Operation gehe.

176
00:13:01,985 --> 00:13:07,370
Also, lassen Sie mich dieses GET auswählen und dann eine DELETE-Operation mit den Gerichten durchführen.

177
00:13:07,370 --> 00:13:13,440
Lassen Sie mich in der Kopfzeile die Autorisierung hier einschließen und Sie würden feststellen

178
00:13:13,440 --> 00:13:22,144
, dass, wenn wir die Anfrage einfügen und dann die DELETE-Berechtigung senden,

179
00:13:22,144 --> 00:13:27,325
Sie bemerken würden, dass sie sofort mit dieser Nachricht hier zurückkommt,

180
00:13:27,325 --> 00:13:28,990
wie Sie in der Vorschau sehen können,

181
00:13:28,990 --> 00:13:33,510
es heißt „Sie sind nicht autorisiert Führen Sie diesen Vorgang durch! „

182
00:13:33,510 --> 00:13:37,410
Dann ist der Fehlercode 403 verboten.

183
00:13:37,410 --> 00:13:41,540
Dies ist also eine Nachricht, die von

184
00:13:41,540 --> 00:13:46,470
der VerifyAdmin-Funktion generiert wurde, die Sie als Teil dieser Übung implementieren werden.

185
00:13:46,470 --> 00:13:49,720
Wenn der Benutzer also kein Administrator ist,

186
00:13:49,720 --> 00:13:53,085
dann ist dies die Nachricht, die Ihr VerifyAdmin

187
00:13:53,085 --> 00:13:57,880
generiert, und es wird nicht zulassen, dass die Anfrage über diesen Punkt hinausgeht.

188
00:13:57,880 --> 00:14:04,150
Sie können also sehen, dass ich die DELETE-Operation geschlossen habe.

189
00:14:04,150 --> 00:14:05,895
Nun, wie machst du das?

190
00:14:05,895 --> 00:14:11,925
In Ihrem Code haben Sie gesehen, dass

191
00:14:11,925 --> 00:14:16,270
wir Authenticate.verifyUser in den POST-, PUT-

192
00:14:16,270 --> 00:14:18,270
und DELETE-Operationen setzen, um den VerifyUser anzuwenden.

193
00:14:18,270 --> 00:14:22,105
Jetzt können Sie die Middleware nacheinander verketten.

194
00:14:22,105 --> 00:14:25,200
So können wir sagen, authenticate.verifyUser Komma

195
00:14:25,200 --> 00:14:28,905
und dann folgen, dass Sie Authenticate.VerifyAdmin sagen können,

196
00:14:28,905 --> 00:14:32,190
um die VerifyAdmin direkt nach dem VerifyUser anzuwenden.

197
00:14:32,190 --> 00:14:35,840
Wenn Sie also möchten, dass ein Vorgang nur auf den Administrator beschränkt wird,

198
00:14:35,840 --> 00:14:39,520
führen Sie zuerst den VerifyUser-Teil aus und dann unmittelbar danach

199
00:14:39,520 --> 00:14:42,085
wenden Sie die VerifyAdmin-Middleware an.

200
00:14:42,085 --> 00:14:45,274
Gleich danach. Also, wenn diese beiden Prüfungen

201
00:14:45,274 --> 00:14:49,615
erfolgreich durchlaufen, dann werden Sie die Operation ausführen.

202
00:14:49,615 --> 00:14:52,240
Wenn die VerifyAdmin-Prüfung fehlschlägt,

203
00:14:52,240 --> 00:14:54,870
werden Sie diese Fehlermeldung, wie Sie

204
00:14:54,870 --> 00:14:57,995
hier sehen, zurückgeben und dann den Vorgang dieses Teils abbrechen.

205
00:14:57,995 --> 00:15:01,300
Sie werden also den nächsten Fehler von Ihrem VerifyAdmin zurückgeben,

206
00:15:01,300 --> 00:15:03,260
wenn der Benutzer kein Administrator ist.

207
00:15:03,260 --> 00:15:08,100
Also habe ich Ihnen gezeigt, wie Sie

208
00:15:08,100 --> 00:15:12,865
das Administratorbenutzerkonto verwenden werden, um Operationen für PUT-

209
00:15:12,865 --> 00:15:15,285
, POST- und DELETE-Operationen einzuschränken.

210
00:15:15,285 --> 00:15:21,935
Gleiches gilt, POST- und PUT-Operationen werden auch nicht auf einem dieser n Teile erlaubt.

211
00:15:21,935 --> 00:15:26,360
Nun, dann lassen Sie mich den anderen Aspekt hier demonstrieren.

212
00:15:26,360 --> 00:15:28,710
Also, Sie sahen, dass dort,

213
00:15:28,710 --> 00:15:30,450
wenn wir die GET-Operation durchführen,

214
00:15:30,450 --> 00:15:37,570
Sie sahen, dass es bereits einen Kommentar gab, der von dem Benutzernamen Jogesh, dem

215
00:15:37,570 --> 00:15:40,230
ersten Benutzer, der in meinem System ist, gepostet wurde.

216
00:15:40,230 --> 00:15:43,385
Jetzt werde ich mich als der andere Benutzer anmelden.

217
00:15:43,385 --> 00:15:53,080
Also, ich werde mich wie in meinem zweiten Konto anmelden, das Muppala ist und dann, wenn ich mich einlogge,

218
00:15:53,080 --> 00:15:54,175
bekomme ich wieder das Token.

219
00:15:54,175 --> 00:15:56,585
Also, lassen Sie mich diesen Token hier nehmen.

220
00:15:56,585 --> 00:15:58,645
Lassen Sie mich dieses Token kopieren.

221
00:15:58,645 --> 00:16:04,685
Nun, was ich tun werde, ist, dass ich ein GET auf den localhost Gerichten machen werde.

222
00:16:04,685 --> 00:16:12,520
Also, lassen Sie mich ein GET auf den localhost Gerichten machen, um Ihnen den spezifischen Kommentar hier zu zeigen.

223
00:16:12,520 --> 00:16:16,030
Also, dieser besondere Kommentar mit dieser ID.

224
00:16:16,030 --> 00:16:17,640
Also, was ich tun werde, ist,

225
00:16:17,640 --> 00:16:20,400
dass ich diesen Ausweis kopieren werde.

226
00:16:20,400 --> 00:16:26,810
Ich werde auch die Kommentar-ID von hier kopieren und ich werde

227
00:16:26,810 --> 00:16:38,700
eine DELETE-Operation für dieses spezifische Gericht durchführen

228
00:16:38,700 --> 00:16:42,615
und mich daran erinnern, dass wir

229
00:16:42,615 --> 00:16:50,980
den Schrägstrich Kommentare und dann diese spezielle Kommentar-ID haben.

230
00:16:50,980 --> 00:16:55,350
Denken Sie nun daran, dass dieser Kommentar von diesem Benutzernamen gepostet wurde,

231
00:16:55,350 --> 00:17:01,120
aber ich habe mich jetzt als der andere Benutzer mit einem anderen Benutzernamen angemeldet.

232
00:17:01,120 --> 00:17:07,075
Also, wenn ich jetzt den DELETE-Vorgang mit dem anderen Konto durchführe,

233
00:17:07,075 --> 00:17:11,950
würden Sie sofort bemerken, dass hier steht:

234
00:17:11,950 --> 00:17:15,550
„Sie sind nicht berechtigt, diesen Kommentar zu löschen! „

235
00:17:15,550 --> 00:17:18,970
Dann heißt es 403, dasselbe.

236
00:17:18,970 --> 00:17:24,205
Wenn Sie versuchen, eine PUT-Operation für diesen bestimmten Kommentar auszuführen, der als anderer Benutzer angemeldet

237
00:17:24,205 --> 00:17:30,010
ist, wird es sagen: „Sie sind nicht berechtigt, diesen Kommentar zu aktualisieren!“

238
00:17:30,010 --> 00:17:35,340
Daher sind sowohl PUT, DELETE als auch UPDATE des Kommentars einer anderen Person nicht erlaubt.

239
00:17:35,340 --> 00:17:41,855
Also jetzt, lassen Sie mich an dieser Stelle als Admin anmelden und dann versuchen, diesen

240
00:17:41,855 --> 00:17:50,510
bestimmten Kommentar zu löschen, und Sie würden sehen, dass die gleiche Nachricht generiert wird.

241
00:17:50,510 --> 00:17:55,890
Ein Admin kann also auch die Kommentare anderer nicht löschen oder aktualisieren.

242
00:17:55,890 --> 00:17:57,600
Also, um sich als Admin anzumelden,

243
00:17:57,600 --> 00:18:02,785
lassen Sie mich hier in den POST gehen und dann mich als Admin anmelden.

244
00:18:02,785 --> 00:18:08,585
Denken Sie nun daran, dass diese Token für 33.600 Sekunden gültig sind.

245
00:18:08,585 --> 00:18:12,620
So können Sie diese drei Token speichern, die Sie für die drei Benutzer generieren.

246
00:18:12,620 --> 00:18:16,270
Sie müssen sich also nicht mehr als dieser bestimmte Benutzer anmelden.

247
00:18:16,270 --> 00:18:20,180
Solange Sie das richtige Token in der Kopfzeile verwenden,

248
00:18:20,180 --> 00:18:25,670
führen Ihre Operationen gut aus, um die drei verschiedenen Benutzer zu identifizieren.

249
00:18:25,670 --> 00:18:28,655
Also, lassen Sie mich hier als Administrator einloggen.

250
00:18:28,655 --> 00:18:30,670
Also, wenn ich mich als Admin einlogge,

251
00:18:30,670 --> 00:18:31,680
bekomme ich das Token hier.

252
00:18:31,680 --> 00:18:34,930
Also, ich werde dieses Token kopieren und speichern.

253
00:18:35,010 --> 00:18:40,800
Denken Sie daran, welches Token zu wem gehört, wenn Sie eine Kopie davon erstellen.

254
00:18:40,800 --> 00:18:45,430
Gehen Sie nun zurück zu diesem, löschen Sie den Kommentarvorgang.

255
00:18:45,430 --> 00:18:54,575
Ich werde in den Header gehen und dann werde ich dies in das Token für den

256
00:18:54,575 --> 00:19:00,980
Administrator ändern und dann versuchen, den gleichen DELETE-Vorgang auszuführen und dann sehen Sie

257
00:19:00,980 --> 00:19:08,420
, dass selbst der Administrator nicht berechtigt ist, den Kommentar von einem anderen Benutzer zu löschen.

258
00:19:08,420 --> 00:19:10,480
Das ist durchaus akzeptabel.

259
00:19:10,480 --> 00:19:13,095
Aber lassen Sie uns versuchen, den gleichen Kommentar zu löschen,

260
00:19:13,095 --> 00:19:15,255
von diesem Benutzer, der diesen

261
00:19:15,255 --> 00:19:18,425
Kommentar erstellt hat, und Sie würden sehen, dass dies erfolgreich getan werden kann.

262
00:19:18,425 --> 00:19:20,715
Also, lassen Sie uns diese Operation durchführen.

263
00:19:20,715 --> 00:19:24,720
Um dies zu tun, werde ich zurückgehen und das Token holen, das ich

264
00:19:24,720 --> 00:19:30,345
für den ersten Benutzer erhalten habe, und dann das Autorisierungsfeld ändern.

265
00:19:30,345 --> 00:19:33,260
Nun, für diese DELETE-Operation,

266
00:19:33,260 --> 00:19:35,860
werde ich dies in Bearer ändern,

267
00:19:35,860 --> 00:19:42,400
und dann ist dies das Token für den ersten Benutzer mit dem Benutzernamen Jogesh.

268
00:19:42,400 --> 00:19:46,100
Wenn ich also versuche, diesen Kommentar zu löschen,

269
00:19:46,100 --> 00:19:50,850
werden Sie feststellen, dass der Kommentar jetzt erfolgreich gelöscht wird.

270
00:19:50,850 --> 00:19:53,710
Wie Sie aus den Schritten sehen können,

271
00:19:53,710 --> 00:19:57,830
kann der Kommentar nur von dem Benutzer gelöscht werden, der diesen Kommentar erstellt hat.

272
00:19:57,830 --> 00:19:59,120
Nun, der nächste Schritt,

273
00:19:59,120 --> 00:20:02,345
wenn wir den Löschvorgang auf dem Geschirr durchführen,

274
00:20:02,345 --> 00:20:07,120
sahen wir früher, dass, wenn wir den Löschvorgang als gewöhnlicher Benutzer durchgeführt haben,

275
00:20:07,120 --> 00:20:09,400
eine Meldung erhalten, die besagt:

276
00:20:09,400 --> 00:20:12,010
„Sie sind nicht berechtigt, diesen Vorgang auszuführen!“

277
00:20:12,010 --> 00:20:16,670
Also, ich werde dieses Token in das Token des Admins ändern und

278
00:20:16,670 --> 00:20:21,425
Ihnen dann zeigen, dass ein Administrator die DELETE-Operation für das Geschirr und den Topf ausführen kann.

279
00:20:21,425 --> 00:20:23,480
Also, in diese Anfrage gehen,

280
00:20:23,480 --> 00:20:30,550
lassen Sie mich das Token ändern, um das Token für den Admin-Benutzer zu sein.

281
00:20:30,550 --> 00:20:34,765
Wenn ich also den DELETE-Vorgang als Admin-Benutzer durchführe,

282
00:20:34,765 --> 00:20:37,375
werden Sie feststellen, dass der DELETE-Vorgang

283
00:20:37,375 --> 00:20:41,905
erfolgreich ist und dann mit der Nachricht hier antwortet.

284
00:20:41,905 --> 00:20:45,715
Nun, wenn ich ein GET auf dem Geschirr Endpunkt mache,

285
00:20:45,715 --> 00:20:52,515
werden Sie feststellen, dass die GET-Operationen zeigen, dass meine Gerichte geleert wurden.

286
00:20:52,515 --> 00:20:59,285
Nun, die andere Operation, die Sie auch in dieser Zuweisung implementieren,

287
00:20:59,285 --> 00:21:05,670
ist, dass wir eine GET-Operation auf dem Schrägstrich Benutzer Endpunkt durchführen können.

288
00:21:05,670 --> 00:21:09,285
Wenn Sie also eine GET-Operation auf dem Endpunkt des Schrägstrichbenutzers ausführen,

289
00:21:09,285 --> 00:21:12,690
werden Sie feststellen, dass Sie nicht berechtigt sind,

290
00:21:12,690 --> 00:21:16,450
diesen Vorgang auszuführen, wenn Sie kein autorisierter Benutzer sind.

291
00:21:16,450 --> 00:21:20,850
Also, der localhost: 3000/users/endpoint, Sie

292
00:21:20,850 --> 00:21:27,355
werden jetzt zulassen, dass dies nur vom Administrator durchgeführt wird.

293
00:21:27,355 --> 00:21:29,265
Also, wenn ein gewöhnlicher Benutzer,

294
00:21:29,265 --> 00:21:32,420
wenn Sie sich als gewöhnlicher Benutzer mit dem Header anmelden,

295
00:21:32,420 --> 00:21:36,510
werden Sie nicht berechtigt, diesen Vorgang auszuführen.

296
00:21:36,510 --> 00:21:42,390
Nun, lassen Sie mich dieses Token in das Token

297
00:21:42,390 --> 00:21:45,345
vom Administrator ändern und dann werden Sie sehen, dass

298
00:21:45,345 --> 00:21:48,460
der Administrator diesen Vorgang ausführen kann.

299
00:21:48,460 --> 00:21:50,135
Also, um zum GET zu gehen,

300
00:21:50,135 --> 00:21:55,600
lassen Sie mich dieses Token in das Token für

301
00:21:55,600 --> 00:22:02,980
den Admin-Benutzer ändern und dann, wenn ich die GET-Operation dafür durchführe, gibt es zurück.

302
00:22:02,980 --> 00:22:07,945
Wie Sie sehen können, die drei Benutzer, die in meinem System registriert sind,

303
00:22:07,945 --> 00:22:11,015
zeigt es den Benutzer Nummer eins,

304
00:22:11,015 --> 00:22:13,950
Benutzer Nummer zwei und Benutzer Nummer drei.

305
00:22:13,950 --> 00:22:17,530
Beachten Sie natürlich, dass Hash und Salz entfernt werden,

306
00:22:17,530 --> 00:22:21,965
wenn die Nachricht von der Serverseite an die Client-Seite zurückgegeben wird.

307
00:22:21,965 --> 00:22:25,490
Also, die Hash- und Salz-Informationen werden nie draußen offenbart.

308
00:22:25,490 --> 00:22:28,755
Also, Mongos kümmert sich automatisch darum

309
00:22:28,755 --> 00:22:32,580
, diese Informationen herauszufiltern, bevor es die Informationen des Benutzers zurücksendet.

310
00:22:32,580 --> 00:22:35,890
Also, weil Sie die Hash- und

311
00:22:35,890 --> 00:22:39,160
Salz-Informationen nicht an die Außenwelt weitergeben sollten.

312
00:22:39,160 --> 00:22:44,510
Dies ist also die drei Benutzerkonteninformationen, die zurückgegeben werden.

313
00:22:44,510 --> 00:22:47,835
Dies wird also nur zurückgegeben, wenn Sie den GET-Vorgang auf dem

314
00:22:47,835 --> 00:22:51,900
Endpunkt des Schrägstrichbenutzers als Admin-Benutzer ausführen.

315
00:22:51,900 --> 00:22:56,295
Wenn Sie die gleiche Anfrage wie andere Benutzer ausführen,

316
00:22:56,295 --> 00:22:58,055
ist dies nicht zulässig.

317
00:22:58,055 --> 00:23:01,065
Also, wieder werden Sie zuerst überprüfen,

318
00:23:01,065 --> 00:23:05,040
VerifyUser und dann überprüfen Sie die VerifyAdmin und nur, wenn es ein Administrator ist,

319
00:23:05,040 --> 00:23:08,940
dann kann dieser Vorgang an diesem Endpunkt ausgeführt werden.

320
00:23:08,940 --> 00:23:15,535
Dies sind also all die verschiedenen Aufgaben, die Sie als Teil dieser Aufgabe ausführen werden.

321
00:23:15,535 --> 00:23:22,990
Die Einzelheiten, wie diese zu erledigen sind, sind in den Zuweisungsanweisungen dokumentiert.

322
00:23:22,990 --> 00:23:27,875
Lesen Sie sich also die Anweisungen durch, bevor Sie mit der dritten Aufgabe fortfahren.

323
00:23:27,875 --> 00:23:32,380
Viel Spaß beim Abschluss der dritten Aufgabe.