1
00:00:03,920 --> 00:00:07,970
Tempo per il terzo incarico in questo corso.

2
00:00:07,970 --> 00:00:13,110
In questo modulo, abbiamo esplorato l'autenticazione utente in molti dettagli.

3
00:00:13,110 --> 00:00:14,705
Ora, in questo incarico,

4
00:00:14,705 --> 00:00:17,905
lavoreremo ulteriormente sull'autenticazione dell'utente.

5
00:00:17,905 --> 00:00:22,965
Aggiungeremo ancora un'altra categoria di account chiamati come amministratore.

6
00:00:22,965 --> 00:00:26,880
Un account Admin è un super account che ha

7
00:00:26,880 --> 00:00:31,460
molti privilegi per eseguire varie operazioni.

8
00:00:31,460 --> 00:00:37,410
Un normale account utente può eseguire solo determinate operazioni sul nostro server.

9
00:00:37,410 --> 00:00:43,445
Allo stesso modo, una richiesta non registrata proveniente da un client

10
00:00:43,445 --> 00:00:49,610
che non è connesso può eseguire solo determinate operazioni sul nostro server.

11
00:00:49,610 --> 00:00:52,400
Ora, stiamo andando a modificare il nostro server in modo

12
00:00:52,400 --> 00:00:55,865
che ottenere operazioni possono essere eseguite da chiunque.

13
00:00:55,865 --> 00:01:00,350
Non è necessario accedere al sistema per eseguire operazioni di recupero

14
00:01:00,350 --> 00:01:06,110
sui vari endpoint API di riposo tranne l'invio di commenti.

15
00:01:06,110 --> 00:01:11,625
Per le operazioni rimanenti sugli endpoint API restanti,

16
00:01:11,625 --> 00:01:15,365
le operazioni POST put and delete,

17
00:01:15,365 --> 00:01:20,190
queste saranno limitate per essere eseguite solo da utenti amministratori,

18
00:01:20,190 --> 00:01:23,780
un utente ordinario non può eseguire queste operazioni.

19
00:01:23,780 --> 00:01:30,215
Ovviamente, non vuoi che un utente ordinario invii nuovi piatti, promozioni o

20
00:01:30,215 --> 00:01:34,975
informazioni sui leader, o modifichi le informazioni esistenti

21
00:01:34,975 --> 00:01:37,780
o addirittura elimini queste informazioni esistenti.

22
00:01:37,780 --> 00:01:45,290
Questo dovrebbe essere il privilegio solo dell'amministratore di sistema per il nostro server.

23
00:01:45,290 --> 00:01:50,870
Inoltre, ci assicureremo che un utente ordinario possa

24
00:01:50,870 --> 00:01:56,010
pubblicare commenti su piatti specifici, che è accettabile.

25
00:01:56,010 --> 00:02:03,015
Allo stesso modo, un utente ordinario può aggiornare ed eliminare i commenti che ha pubblicato.

26
00:02:03,015 --> 00:02:10,230
Altri utenti o anche l'amministratore non possono aggiornare o eliminare i commenti pubblicati da un altro utente.

27
00:02:10,230 --> 00:02:14,565
Quindi, questa è un'altra restrizione che metteremo nel nostro server.

28
00:02:14,565 --> 00:02:18,335
Ora, andiamo avanti ed esaminiamo come stiamo andando a

29
00:02:18,335 --> 00:02:23,299
implementare questo e come esattamente il nostro server esegue queste operazioni.

30
00:02:23,299 --> 00:02:26,720
Prima di tutto, vi illustrerò come si

31
00:02:26,720 --> 00:02:31,240
creerebbe un account amministratore nel vostro sistema.

32
00:02:31,240 --> 00:02:33,770
Ti renderai conto che dobbiamo andare dietro

33
00:02:33,770 --> 00:02:37,325
le quinte per creare un account amministratore semplicemente perché,

34
00:02:37,325 --> 00:02:41,930
non vogliamo che un account amministratore venga creato eseguendo

35
00:02:41,930 --> 00:02:47,030
l'operazione di registrazione sul nostro account utenti/registrazione.

36
00:02:47,030 --> 00:02:50,670
Questo lascerà il nostro server vulnerabile agli attacchi.

37
00:02:50,670 --> 00:02:54,185
Quindi, un account amministratore può essere impostato solo

38
00:02:54,185 --> 00:02:59,085
dietro le quinte accedendo direttamente al database.

39
00:02:59,085 --> 00:03:02,090
Quindi, diamo un'occhiata a come facciamo

40
00:03:02,090 --> 00:03:08,340
questo nell'illustrazione che vi mostrerò subito dopo.

41
00:03:08,380 --> 00:03:11,700
Ora, per esaminare

42
00:03:11,700 --> 00:03:15,865
il nostro database, lasciatemi avviare Mongo Ripple alla riga di comando,

43
00:03:15,865 --> 00:03:21,740
quindi andare alla cartella confusione e quindi lasciatemi

44
00:03:21,740 --> 00:03:27,830
esaminare gli utenti che sono registrati nel mio database in questo momento.

45
00:03:27,830 --> 00:03:32,015
Quindi, puoi vedere che ho solo un utente registrato.

46
00:03:32,015 --> 00:03:35,735
Quindi, lasciami impostare due account aggiuntivi,

47
00:03:35,735 --> 00:03:37,695
uno per un utente ordinario

48
00:03:37,695 --> 00:03:40,280
e uno che sarà un amministratore.

49
00:03:40,280 --> 00:03:47,415
Quindi, registreremo l'amministratore e il secondo utente anche dal nostro punto di registrazione, in

50
00:03:47,415 --> 00:03:51,935
seguito torneranno al Mongo Ripple e quindi imposteranno l'account amministratore in

51
00:03:51,935 --> 00:03:57,110
modo esplicito modificando il record nel nostro database.

52
00:03:57,110 --> 00:03:58,935
Andando al pin Postman,

53
00:03:58,935 --> 00:04:03,780
mi permetta di iscrivere due utenti aggiuntivi.

54
00:04:03,780 --> 00:04:07,755
Quindi, in precedenza avevamo firmato un utente con questo nome,

55
00:04:07,755 --> 00:04:15,660
quindi ho intenzione di registrare un altro utente nel mio sistema,

56
00:04:15,660 --> 00:04:20,945
e così, un secondo utente è ora registrato con successo.

57
00:04:20,945 --> 00:04:24,660
Ora, lasciami registrare anche un account amministratore.

58
00:04:24,660 --> 00:04:25,880
Quindi, per l'account admin,

59
00:04:25,880 --> 00:04:31,910
imposterò il nome utente come admin e quindi iscriverò un utente admin.

60
00:04:31,910 --> 00:04:38,545
Quindi, vediamo che ora abbiamo aggiunto due nuovi account al nostro sistema.

61
00:04:38,545 --> 00:04:40,455
Andando al Mongo Ripple,

62
00:04:40,455 --> 00:04:43,870
fammi ripetere di nuovo il

63
00:04:43,870 --> 00:04:51,110
db.user.find () e lasciami fare abbastanza in modo che sembri più facile da leggere.

64
00:04:51,110 --> 00:04:52,845
Quindi, quando faccio questo,

65
00:04:52,845 --> 00:04:58,655
puoi vedere che abbiamo un account amministratore qui con il nome utente come amministratore.

66
00:04:58,655 --> 00:05:00,770
Ignorare il nome e il cognome,

67
00:05:00,770 --> 00:05:05,190
imposterò questo nome e cognome per essere lo stesso per tutti e tre.

68
00:05:05,190 --> 00:05:12,800
Quindi, abbiamo l'altro account utente che ho impostato con il nome utente qui,

69
00:05:12,800 --> 00:05:17,190
e il terzo account utente che abbiamo già avuto nel nostro database.

70
00:05:17,190 --> 00:05:19,750
Quindi, ora abbiamo tre account utente;

71
00:05:19,750 --> 00:05:22,215
due account utente qui,

72
00:05:22,215 --> 00:05:23,860
e un account amministratore.

73
00:05:23,860 --> 00:05:28,395
Ora, naturalmente, vedrai che negli account utente,

74
00:05:28,395 --> 00:05:32,690
abbiamo questo flag chiamato come flag admin che è impostato su false per

75
00:05:32,690 --> 00:05:38,100
qualsiasi account che è registrato su questo/users/signup endpoint.

76
00:05:38,100 --> 00:05:40,740
Questo è il modo predefinito in cui è necessario impostare gli account.

77
00:05:40,740 --> 00:05:44,465
Non è possibile consentire a un utente di configurare un account amministratore

78
00:05:44,465 --> 00:05:48,945
eseguendo qualsiasi operazione direttamente sull'endpoint API di riposo.

79
00:05:48,945 --> 00:05:53,600
Invece, andremo dietro le quinte e poi nel Mongo Ripple,

80
00:05:53,600 --> 00:06:00,510
ho intenzione di modificare questo record per l'utente admin

81
00:06:00,510 --> 00:06:07,920
dicendo db.users.update e poi

82
00:06:07,920 --> 00:06:15,205
forniremo il nome utente come admin qui.

83
00:06:15,205 --> 00:06:25,470
Quindi, stiamo per aggiornare il record di versi e poi diremo {$ set:

84
00:06:25,470 --> 00:06:31,520
ricorda come stavamo manipolando il mongoDB quindi

85
00:06:31,520 --> 00:06:39,180
diremo {$ set: {"admin»: «true»}.

86
00:06:39,180 --> 00:06:42,980
Quindi, quello che stiamo facendo qui è che stiamo

87
00:06:42,980 --> 00:06:47,810
cercando questo account utente con il nome utente admin,

88
00:06:47,810 --> 00:06:52,190
e quindi stiamo impostando il flag admin a true

89
00:06:52,190 --> 00:06:58,125
qui utilizzando l'opzione $ set.

90
00:06:58,125 --> 00:07:02,520
Quindi, questo è il modo in cui vorremmo aggiornare un account per essere un account amministratore.

91
00:07:02,520 --> 00:07:08,010
Quindi, vedi che questo ha modificato i risultati.

92
00:07:08,010 --> 00:07:11,880
Quindi, controlliamo di nuovo i conti.

93
00:07:11,880 --> 00:07:13,410
Ora, quando controlli l'account,

94
00:07:13,410 --> 00:07:16,140
vedrai che per l'account admin,

95
00:07:16,140 --> 00:07:19,475
il flag admin è ora impostato su true,

96
00:07:19,475 --> 00:07:22,810
quindi questo è il modo in cui finirai per creare un account admin.

97
00:07:22,810 --> 00:07:27,920
Ora, l'account Admin come ci aspetteremmo ha privilegi aggiuntivi.

98
00:07:27,920 --> 00:07:33,400
Quindi, una volta completata questa assegnazione,

99
00:07:33,400 --> 00:07:38,525
noterai che l'operazione get può essere eseguita da qualsiasi utente

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

101
00:07:45,080 --> 00:07:50,570
e il/promotions/specificpromotionendpoint e allo stesso modo,

102
00:07:50,570 --> 00:07:52,985
anche per i leader in punti.

103
00:07:52,985 --> 00:07:55,590
Ma le

104
00:07:55,590 --> 00:08:02,195
operazioni POST, put ed delete su questi endpoint possono essere eseguite solo dagli utenti amministratori.

105
00:08:02,195 --> 00:08:08,110
Ora, in aggiunta, l'endpoint commenti,

106
00:08:08,110 --> 00:08:14,110
consentiremmo solo un utente registrato che ha effettuato l'

107
00:08:14,110 --> 00:08:20,835
accesso per accedere ai commenti per un piatto specifico,

108
00:08:20,835 --> 00:08:25,990
permetteremo a un utente connesso di pubblicare commenti.

109
00:08:25,990 --> 00:08:28,730
Abbiamo già impostato questo nell'esercizio in modo che,

110
00:08:28,730 --> 00:08:31,290
quando l'utente pubblica il commento,

111
00:08:31,290 --> 00:08:34,150
abbiamo assicurato che verifichiamo

112
00:08:34,150 --> 00:08:37,150
l'autenticità dell'utente e poi quando il commento viene pubblicato,

113
00:08:37,150 --> 00:08:44,060
abbiamo impostato l'ID autore per il commento utilizzando l'ID utente.

114
00:08:44,060 --> 00:08:46,140
Quindi, l'abbiamo già completato.

115
00:08:46,140 --> 00:08:48,625
Ma ora, in aggiunta,

116
00:08:48,625 --> 00:08:55,220
per le operazioni put e delete sui commenti,

117
00:08:55,220 --> 00:08:59,480
solo l'utente che ha inviato il commento specifico sarà

118
00:08:59,480 --> 00:09:04,180
autorizzato a eseguire operazioni di put ed eliminazione sui propri commenti.

119
00:09:04,180 --> 00:09:08,480
Qualsiasi altro utente non può modificare i commenti di qualcun altro.

120
00:09:08,480 --> 00:09:13,355
Allo stesso modo, anche l'amministratore non può modificare i commenti di qualcun altro

121
00:09:13,355 --> 00:09:14,960
o eliminare il commento di qualcun altro.

122
00:09:14,960 --> 00:09:18,850
Quindi, questa è la seconda parte di questo incarico che farai.

123
00:09:18,850 --> 00:09:22,910
La terza parte è che un amministratore può interrogare

124
00:09:22,910 --> 00:09:31,115
il punto finale /users e chiedere l'elenco degli utenti registrati,

125
00:09:31,115 --> 00:09:35,090
nessun altro utente ordinario può fare questa query.

126
00:09:35,090 --> 00:09:38,550
Quindi, questa è l'altra restrizione che metteremo lì dentro.

127
00:09:38,550 --> 00:09:42,745
Ora, per verificare che un utente sia un amministratore,

128
00:09:42,745 --> 00:09:46,770
verificheremo prima che l'utente sia un utente registrato.

129
00:09:46,770 --> 00:09:51,470
Quindi, la funzione utente di verifica che abbiamo già implementato nel

130
00:09:51,470 --> 00:09:56,450
authenticate.js dovrebbe essere applicata anche dove è necessario verificare l'amministratore.

131
00:09:56,450 --> 00:09:59,855
Innanzitutto, si controlla che sia un utente verificato, in seguito,

132
00:09:59,855 --> 00:10:05,795
si introdurrà un'altra funzione chiamata VerifyAdmin nel

133
00:10:05,795 --> 00:10:12,285
file authenticate.js che controllerà per assicurarsi che l'utente sia un amministratore.

134
00:10:12,285 --> 00:10:15,190
Ora, per verificare se un utente è un amministratore,

135
00:10:15,190 --> 00:10:19,900
tutto ciò che devi fare è controllare il rec.user che si trova

136
00:10:19,900 --> 00:10:24,855
sull'oggetto richiesta rec.user lì,

137
00:10:24,855 --> 00:10:28,325
verificare se il flag admin è true o meno.

138
00:10:28,325 --> 00:10:30,375
Se il flag admin è true,

139
00:10:30,375 --> 00:10:39,315
si consentirà il normale processo di procedere ulteriormente al [inudibile] accadere.

140
00:10:39,315 --> 00:10:41,570
Se l'utente non è un amministratore,

141
00:10:41,570 --> 00:10:49,075
verrà generato un errore e verrà restituito un messaggio di errore al lato client.

142
00:10:49,075 --> 00:10:53,945
Quindi, è così che stiamo andando a gestire l'account degli utenti admin.

143
00:10:53,945 --> 00:11:03,165
Ora, quando un utente sta cercando di modificare o eliminare i propri commenti,

144
00:11:03,165 --> 00:11:06,320
dobbiamo verificare che l'autore del commento sia

145
00:11:06,320 --> 00:11:10,245
lo stesso dell'utente che sta tentando di modificare il commento.

146
00:11:10,245 --> 00:11:13,085
Ora, il rec.user ha anche il campo ID,

147
00:11:13,085 --> 00:11:16,860
quindi è necessario incrociarlo con il campo autore del commento.

148
00:11:16,860 --> 00:11:18,255
Se questi due corrispondono,

149
00:11:18,255 --> 00:11:22,390
allora si consentirà all'utente di eseguire le operazioni put o delete.

150
00:11:22,390 --> 00:11:24,050
Se non corrispondono

151
00:11:24,050 --> 00:11:31,190
, non consentirai le operazioni put o eliminazione su quel commento specifico.

152
00:11:31,190 --> 00:11:33,590
Quindi questo è l'altro aspetto che stai per

153
00:11:33,590 --> 00:11:37,185
implementare come parte del tuo terzo incarico.

154
00:11:37,185 --> 00:11:40,420
Diamo un'occhiata a come tutte queste cose funzionano

155
00:11:40,420 --> 00:11:44,500
utilizzando Postman per eseguire varie operazioni sul nostro server.

156
00:11:44,500 --> 00:11:46,545
Tornando a Postman,

157
00:11:46,545 --> 00:11:49,725
fammi prima eseguire un'operazione GET sui

158
00:11:49,725 --> 00:11:53,920
piatti per controllare solo cosa c'è nel mio database.

159
00:11:53,920 --> 00:11:56,140
Quindi, se eseguo un'operazione GET sui piatti,

160
00:11:56,140 --> 00:12:00,270
nota che non sto mettendo alcuna autenticazione nell'intestazione.

161
00:12:00,270 --> 00:12:02,500
L' operazione GET è consentita da chiunque.

162
00:12:02,500 --> 00:12:04,420
Quindi, quando eseguo l'operazione GET,

163
00:12:04,420 --> 00:12:13,985
posso vedere che ho già un piatto con un commento già in atto in quel piatto.

164
00:12:13,985 --> 00:12:18,900
Questo commento è già stato pubblicato da questo utente.

165
00:12:18,900 --> 00:12:23,895
Quindi, abbiamo già un piatto nel sistema lì.

166
00:12:23,895 --> 00:12:26,520
Quindi, questo va perfettamente bene,

167
00:12:26,520 --> 00:12:28,405
ho intenzione di cancellare il piatto.

168
00:12:28,405 --> 00:12:29,875
Ora, per cancellare il piatto,

169
00:12:29,875 --> 00:12:33,855
ovviamente quell'operazione non può essere eseguita da un utente ordinario.

170
00:12:33,855 --> 00:12:36,500
Quindi, lasciami accedere come,

171
00:12:36,500 --> 00:12:40,310
in modo da poter vedere che sto effettuando l'accesso come utente normale.

172
00:12:40,310 --> 00:12:44,940
Quindi, lasciami accedere come utente normale.

173
00:12:44,940 --> 00:12:47,140
Quindi, quando effettuerò il login, otterrò il token.

174
00:12:47,140 --> 00:12:49,725
Quindi, ho intenzione di copiare questo token e salvarlo.

175
00:12:49,725 --> 00:12:53,845
Ora, che ho il mio token,

176
00:12:53,845 --> 00:12:58,770
fammi eseguire un'operazione DELETE sui piatti.

177
00:12:58,770 --> 00:13:01,985
Quindi, quando vado all'operazione DELETE.

178
00:13:01,985 --> 00:13:07,370
Quindi, lasciami selezionare questo GET e quindi eseguire un'operazione DELETE con i piatti.

179
00:13:07,370 --> 00:13:13,440
Nell' intestazione, lasciami includere l'autorizzazione qui e noterai

180
00:13:13,440 --> 00:13:22,144
che quando incolliamo la richiesta e quindi inviamo l'autorizzazione DELETE,

181
00:13:22,144 --> 00:13:27,325
noterai che ritorna immediatamente con questo messaggio qui,

182
00:13:27,325 --> 00:13:28,990
come puoi vedere nell'anteprima,

183
00:13:28,990 --> 00:13:33,510
dice «Non sei autorizzato a eseguire questa operazione! «

184
00:13:33,510 --> 00:13:37,410
Quindi il codice di errore è 403 proibito.

185
00:13:37,410 --> 00:13:41,540
Quindi, questo è un messaggio che è stato generato

186
00:13:41,540 --> 00:13:46,470
dalla funzione VerifyAdmin che si sta per implementare come parte di questo esercizio.

187
00:13:46,470 --> 00:13:49,720
Quindi, se l'utente non è un amministratore,

188
00:13:49,720 --> 00:13:53,085
questo è il messaggio che il tuo VerifyAdmin

189
00:13:53,085 --> 00:13:57,880
genererà e non consentirà alla richiesta di andare oltre quel punto.

190
00:13:57,880 --> 00:14:04,150
Quindi, puoi vedere che ho chiuso l'operazione DELETE.

191
00:14:04,150 --> 00:14:05,895
Ora, come si fa?

192
00:14:05,895 --> 00:14:11,925
Nel tuo codice, hai visto che per applicare VerifyUser,

193
00:14:11,925 --> 00:14:16,270
impostiamo Authenticate.verifyUser nelle

194
00:14:16,270 --> 00:14:18,270
operazioni POST, PUT e DELETE.

195
00:14:18,270 --> 00:14:22,105
Ora, puoi concatenare il middleware uno dopo l'altro.

196
00:14:22,105 --> 00:14:25,200
Quindi, possiamo dire Authenticate.VerifyUser virgola

197
00:14:25,200 --> 00:14:28,905
e quindi seguendo che puoi dire Authenticate.VerifyAdmin,

198
00:14:28,905 --> 00:14:32,190
per applicare VerifyAdmin subito dopo VerifyUser.

199
00:14:32,190 --> 00:14:35,840
Quindi, se si desidera che un'operazione sia limitata solo all'amministratore,

200
00:14:35,840 --> 00:14:39,520
eseguire prima la parte VerifyUser e quindi immediatamente dopo,

201
00:14:39,520 --> 00:14:42,085
applicare il middleware VerifyAdmin.

202
00:14:42,085 --> 00:14:45,274
Subito dopo. Quindi, se questi due controlli,

203
00:14:45,274 --> 00:14:49,615
passano con successo, allora andrai a eseguire l'operazione.

204
00:14:49,615 --> 00:14:52,240
Se il controllo VerifyAdmin non riesce,

205
00:14:52,240 --> 00:14:54,870
si restituirà questo messaggio di errore come si vede

206
00:14:54,870 --> 00:14:57,995
qui e quindi interrompere l'operazione che parte.

207
00:14:57,995 --> 00:15:01,300
Quindi, restituirai il prossimo errore dal tuo VerifyAdmin,

208
00:15:01,300 --> 00:15:03,260
se l'utente non è un amministratore.

209
00:15:03,260 --> 00:15:08,100
Quindi, ti ho dimostrato come userai

210
00:15:08,100 --> 00:15:12,865
l'account degli utenti admin per limitare le operazioni per operazioni

211
00:15:12,865 --> 00:15:15,285
PUT, POST e DELETE.

212
00:15:15,285 --> 00:15:21,935
Stessa cosa, anche le operazioni POST e PUT non saranno consentite su nessuna di queste n parti.

213
00:15:21,935 --> 00:15:26,360
Ora, lasciatemi dimostrare l'altro aspetto qui.

214
00:15:26,360 --> 00:15:28,710
Quindi, hai visto che lì dentro,

215
00:15:28,710 --> 00:15:30,450
quando eseguiamo l'operazione GET,

216
00:15:30,450 --> 00:15:37,570
hai visto che c'era già un commento che è stato pubblicato dal nome utente Jogesh,

217
00:15:37,570 --> 00:15:40,230
il primo utente che si trova nel mio sistema.

218
00:15:40,230 --> 00:15:43,385
Ora, ho intenzione di accedere come l'altro utente.

219
00:15:43,385 --> 00:15:53,080
Quindi, accederò come nel mio secondo account che è Muppala e poi quando accedo,

220
00:15:53,080 --> 00:15:54,175
ottengo di nuovo il token.

221
00:15:54,175 --> 00:15:56,585
Quindi, lasciami prendere questo gettone qui.

222
00:15:56,585 --> 00:15:58,645
Fammi copiare questo token.

223
00:15:58,645 --> 00:16:04,685
Ora, quello che ho intenzione di fare è fare un GET sui piatti localhost.

224
00:16:04,685 --> 00:16:12,520
Quindi, lasciami fare un GET sui piatti localhost per mostrarti il commento specifico qui dentro.

225
00:16:12,520 --> 00:16:16,030
Quindi, questo particolare commento con questo ID.

226
00:16:16,030 --> 00:16:17,640
Quindi, quello che faro' e'

227
00:16:17,640 --> 00:16:20,400
copiare quel documento d'identita'.

228
00:16:20,400 --> 00:16:26,810
Ho anche intenzione di copiare l'ID commento da qui e ho intenzione di eseguire

229
00:16:26,810 --> 00:16:38,700
un'operazione DELETE su questo piatto specifico

230
00:16:38,700 --> 00:16:42,615
e ricordare che abbiamo

231
00:16:42,615 --> 00:16:50,980
la barra commenti barra e quindi questo particolare ID commento.

232
00:16:50,980 --> 00:16:55,350
Ora, ricorda che questo commento è stato pubblicato da questo nome utente,

233
00:16:55,350 --> 00:17:01,120
ma ora ho effettuato l'accesso a me stesso come l'altro utente con un nome utente diverso.

234
00:17:01,120 --> 00:17:07,075
Quindi, quando ora eseguo l'operazione DELETE usando l'altro account,

235
00:17:07,075 --> 00:17:11,950
noteresti immediatamente che qui dice:

236
00:17:11,950 --> 00:17:15,550
«Non sei autorizzato a cancellare questo commento! «

237
00:17:15,550 --> 00:17:18,970
Poi dice 403, stessa cosa.

238
00:17:18,970 --> 00:17:24,205
Se provi a eseguire un'operazione PUT su quel commento specifico connesso come un altro utente

239
00:17:24,205 --> 00:17:30,010
, dirà: «Non sei autorizzato ad aggiornare questo commento!»

240
00:17:30,010 --> 00:17:35,340
Quindi, sia PUT, DELETE che UPDATE del commento di qualcun altro non sono consentiti.

241
00:17:35,340 --> 00:17:41,855
Quindi ora, lasciami accedere come amministratore a questo punto e poi lasciami provare a eliminare

242
00:17:41,855 --> 00:17:50,510
quel particolare commento e vedrai che verrà generato lo stesso messaggio.

243
00:17:50,510 --> 00:17:55,890
Quindi, anche un amministratore non può eliminare o aggiornare i commenti di qualcun altro.

244
00:17:55,890 --> 00:17:57,600
Quindi, per accedere come amministratore,

245
00:17:57,600 --> 00:18:02,785
lasciami andare nel POST qui e poi lasciami accedere come amministratore.

246
00:18:02,785 --> 00:18:08,585
Ora, ricorda che questi token saranno validi per 33.600 secondi.

247
00:18:08,585 --> 00:18:12,620
Quindi, è possibile salvare questi tre token che si generano per i tre utenti.

248
00:18:12,620 --> 00:18:16,270
Quindi, non è necessario continuare ad accedere come quel particolare utente.

249
00:18:16,270 --> 00:18:20,180
Finché si utilizza il token giusto nell'intestazione,

250
00:18:20,180 --> 00:18:25,670
le operazioni si eseguiranno perfettamente identificando i tre diversi utenti.

251
00:18:25,670 --> 00:18:28,655
Quindi, lasciami accedere come amministratore qui.

252
00:18:28,655 --> 00:18:30,670
Quindi, quando accedo come amministratore,

253
00:18:30,670 --> 00:18:31,680
ottengo il token qui.

254
00:18:31,680 --> 00:18:34,930
Quindi, ho intenzione di copiare e salvare questo token.

255
00:18:35,010 --> 00:18:40,800
Ricorda solo quale token appartiene a chi quando fai una copia di questo.

256
00:18:40,800 --> 00:18:45,430
Ora, tornando a questo, elimina l'operazione di commento.

257
00:18:45,430 --> 00:18:54,575
Andrò nell'intestazione e poi cambierò questo nel token per l'

258
00:18:54,575 --> 00:19:00,980
amministratore e quindi proverò a eseguire la stessa operazione DELETE e poi vedrai

259
00:19:00,980 --> 00:19:08,420
che anche l'amministratore non è autorizzato a eliminare il commento pubblicato da un altro utente.

260
00:19:08,420 --> 00:19:10,480
Questo è perfettamente accettabile.

261
00:19:10,480 --> 00:19:13,095
Ma proviamo a eliminare lo stesso commento,

262
00:19:13,095 --> 00:19:15,255
da questo utente che ha creato

263
00:19:15,255 --> 00:19:18,425
quel commento e vedresti che questo può essere fatto con successo.

264
00:19:18,425 --> 00:19:20,715
Quindi, eseguiamo quell'operazione.

265
00:19:20,715 --> 00:19:24,720
Quindi, per farlo, tornerò indietro e recupererò il token che

266
00:19:24,720 --> 00:19:30,345
ho per il primo utente e quindi cambierò il campo Autorizzazione.

267
00:19:30,345 --> 00:19:33,260
Ora, per questa operazione DELETE,

268
00:19:33,260 --> 00:19:35,860
cambierò questo in portatore,

269
00:19:35,860 --> 00:19:42,400
e quindi questo è il token per il primo utente con il nome utente Jogesh.

270
00:19:42,400 --> 00:19:46,100
Quindi, quando provo a eliminare quel commento,

271
00:19:46,100 --> 00:19:50,850
noterai che il commento è ora eliminato con successo.

272
00:19:50,850 --> 00:19:53,710
Quindi, come puoi vedere dai passaggi,

273
00:19:53,710 --> 00:19:57,830
il commento può essere eliminato solo dall'utente che ha creato quel commento.

274
00:19:57,830 --> 00:19:59,120
Ora, il passo successivo,

275
00:19:59,120 --> 00:20:02,345
quando facciamo l'operazione DELETE sui piatti,

276
00:20:02,345 --> 00:20:07,120
abbiamo visto in precedenza che se abbiamo fatto l'operazione DELETE come un utente ordinario,

277
00:20:07,120 --> 00:20:09,400
si ottiene un messaggio che dice,

278
00:20:09,400 --> 00:20:12,010
«Non si è autorizzati a eseguire questa operazione!»

279
00:20:12,010 --> 00:20:16,670
Quindi, cambierò questo token nel token dell'amministratore e poi

280
00:20:16,670 --> 00:20:21,425
mostrerò che un amministratore può eseguire l'operazione DELETE sui piatti e sul piatto.

281
00:20:21,425 --> 00:20:23,480
Quindi, andando in questa richiesta,

282
00:20:23,480 --> 00:20:30,550
lasciami cambiare il token per essere il token per l'utente admin.

283
00:20:30,550 --> 00:20:34,765
Quindi, quando eseguo l'operazione DELETE come utente amministratore,

284
00:20:34,765 --> 00:20:37,375
noterai che l'operazione DELETE ha

285
00:20:37,375 --> 00:20:41,905
esito positivo e quindi risponderà con il messaggio qui.

286
00:20:41,905 --> 00:20:45,715
Ora, quando eseguo un GET sull'endpoint dei piatti,

287
00:20:45,715 --> 00:20:52,515
noterai che le operazioni GET mostrano che i miei piatti sono stati svuotati.

288
00:20:52,515 --> 00:20:59,285
Ora, l'altra operazione che implementerai anche in questa assegnazione,

289
00:20:59,285 --> 00:21:05,670
è che possiamo fare un'operazione GET sull'endpoint degli utenti barra.

290
00:21:05,670 --> 00:21:09,285
Pertanto, quando si esegue un'operazione GET sull'endpoint degli utenti barra,

291
00:21:09,285 --> 00:21:12,690
si noterà che se non si è un utente autorizzato,

292
00:21:12,690 --> 00:21:16,450
si dirà che non si è autorizzati a eseguire questa operazione.

293
00:21:16,450 --> 00:21:20,850
Quindi, localhost: 3000/utenti/endpoint,

294
00:21:20,850 --> 00:21:27,355
ora stai per consentire che questo venga eseguito solo dall'amministratore.

295
00:21:27,355 --> 00:21:29,265
Quindi, se un utente ordinario,

296
00:21:29,265 --> 00:21:32,420
se si accede come utente ordinario con l'intestazione,

297
00:21:32,420 --> 00:21:36,510
non sarà consentito eseguire questa operazione.

298
00:21:36,510 --> 00:21:42,390
Ora, lasciami cambiare questo token per il token

299
00:21:42,390 --> 00:21:45,345
fuori dall'amministratore e poi vedrai che

300
00:21:45,345 --> 00:21:48,460
l'amministratore sarà autorizzato a eseguire questa operazione.

301
00:21:48,460 --> 00:21:50,135
Quindi, andando al GET,

302
00:21:50,135 --> 00:21:55,600
lasciami cambiare questo token nel token per

303
00:21:55,600 --> 00:22:02,980
l'utente admin e quindi quando eseguo l'operazione GET su quello, restituisce.

304
00:22:02,980 --> 00:22:07,945
Come si può vedere, i tre utenti che sono registrati nel mio sistema,

305
00:22:07,945 --> 00:22:11,015
mostra il numero utente uno, il

306
00:22:11,015 --> 00:22:13,950
numero utente due, e il numero utente tre.

307
00:22:13,950 --> 00:22:17,530
Ovviamente, si noti che l'hash e il salt vengono rimossi,

308
00:22:17,530 --> 00:22:21,965
quando il messaggio viene restituito dal lato server al lato client.

309
00:22:21,965 --> 00:22:25,490
Quindi, le informazioni sull'hash e il sale non saranno mai rivelate all'esterno.

310
00:22:25,490 --> 00:22:28,755
Quindi, Mongos si prenderà automaticamente cura di

311
00:22:28,755 --> 00:22:32,580
filtrare tali informazioni prima che restituisca le informazioni dell'utente.

312
00:22:32,580 --> 00:22:35,890
Quindi, perché non dovresti rivelare le

313
00:22:35,890 --> 00:22:39,160
informazioni hash e sale al mondo esterno.

314
00:22:39,160 --> 00:22:44,510
Quindi, questo è il tre account utente informazioni che viene restituito.

315
00:22:44,510 --> 00:22:47,835
Pertanto, questo viene restituito solo se si esegue l'operazione GET

316
00:22:47,835 --> 00:22:51,900
sull'endpoint degli utenti barra come utente amministratore.

317
00:22:51,900 --> 00:22:56,295
Se si esegue la stessa richiesta di qualsiasi altro utente,

318
00:22:56,295 --> 00:22:58,055
ciò non sarà consentito.

319
00:22:58,055 --> 00:23:01,065
Quindi, di nuovo controllerai prima,

320
00:23:01,065 --> 00:23:05,040
VerifyUser e quindi controllerai VerifyAdmin e solo se si tratta di un amministratore,

321
00:23:05,040 --> 00:23:08,940
allora questa operazione può essere eseguita su questo punto finale.

322
00:23:08,940 --> 00:23:15,535
Quindi, questi sono tutti i vari compiti che farai come parte di questo compito.

323
00:23:15,535 --> 00:23:22,990
I dettagli di come questi devono essere fatti sono documentati nelle istruzioni di assegnazione.

324
00:23:22,990 --> 00:23:27,875
Quindi, leggere le istruzioni prima di procedere al completamento del terzo incarico.

325
00:23:27,875 --> 00:23:32,380
Divertiti a completare il terzo incarico.