﻿1
00:00:01,260 --> 00:00:02,790
‫-: Ben tornato.

2
00:00:02,790 --> 00:00:05,270
‫Quindi, abbiamo implementato l'autenticazione nel

3
00:00:05,270 --> 00:00:07,770
‫nostro progetto fino a questo punto.

4
00:00:07,770 --> 00:00:09,930
‫E funziona bene.

5
00:00:09,930 --> 00:00:12,960
‫Tuttavia, a volte, la semplice autenticazione, quindi l'accesso

6
00:00:12,960 --> 00:00:14,640
‫di un utente, non

7
00:00:14,640 --> 00:00:16,150
‫è davvero sufficiente.

8
00:00:16,150 --> 00:00:17,490
‫E quindi

9
00:00:17,490 --> 00:00:20,173
‫in questo video implementeremo anche l'autorizzazione.

10
00:00:21,730 --> 00:00:24,850
‫Quindi, immagina l'atto di eliminare un tour

11
00:00:24,850 --> 00:00:26,440
‫dal nostro database.

12
00:00:26,440 --> 00:00:28,890
‫Quindi, non tutti gli utenti dovrebbero, ovviamente,

13
00:00:28,890 --> 00:00:30,530
‫essere autorizzati a farlo.

14
00:00:30,530 --> 00:00:33,306
‫Anche se l'utente ha effettuato l'accesso, giusto?

15
00:00:33,306 --> 00:00:36,055
‫Quindi, fondamentalmente dobbiamo autorizzare solo

16
00:00:36,055 --> 00:00:38,510
‫determinati tipi di utenti, per

17
00:00:38,510 --> 00:00:40,720
‫eseguire determinate azioni.

18
00:00:40,720 --> 00:00:43,550
‫E quindi questo è esattamente ciò che è l'autorizzazione.

19
00:00:43,550 --> 00:00:46,562
‫Sta verificando se un determinato utente ha i

20
00:00:46,562 --> 00:00:49,520
‫diritti per interagire con una determinata risorsa.

21
00:00:49,520 --> 00:00:53,181
‫Quindi, ancora una volta, con l'autorizzazione controlliamo sostanzialmente se

22
00:00:53,181 --> 00:00:58,080
‫un determinato utente è autorizzato ad accedere a una determinata risorsa, anche

23
00:00:58,080 --> 00:00:59,890
‫se ha effettuato l'accesso.

24
00:00:59,890 --> 00:01:03,150
‫Quindi non tutti gli utenti che hanno effettuato l'accesso saranno in grado

25
00:01:03,150 --> 00:01:05,950
‫di eseguire le stesse azioni nella nostra API, ok?

26
00:01:05,950 --> 00:01:08,119
‫E questo è uno scenario molto comune

27
00:01:08,119 --> 00:01:10,240
‫che dovrebbe essere implementato in ogni applicazione

28
00:01:10,240 --> 00:01:12,222
‫web di solito, va bene?

29
00:01:12,222 --> 00:01:15,163
‫Quindi costruiremo un'altra funzione middleware

30
00:01:15,163 --> 00:01:18,410
‫qui, questa volta per limitare determinati percorsi.

31
00:01:18,410 --> 00:01:20,780
‫Ad esempio, per eliminare i tour.

32
00:01:20,780 --> 00:01:23,310
‫Quindi, questo significa che qui costruiremo

33
00:01:23,310 --> 00:01:24,840
‫un'altra funzione middleware.

34
00:01:24,840 --> 00:01:27,290
‫Questa volta, per limitare determinati percorsi, come,

35
00:01:27,290 --> 00:01:29,068
‫ad esempio, l'eliminazione dei

36
00:01:29,068 --> 00:01:31,338
‫tour, solo a determinati ruoli utente.

37
00:01:31,338 --> 00:01:32,630
‫Va bene?

38
00:01:32,630 --> 00:01:35,020
‫E quindi lascia che ti mostri effettivamente

39
00:01:35,020 --> 00:01:36,520
‫come sarebbe in pratica.

40
00:01:36,520 --> 00:01:38,410
‫Quindi qui, nei

41
00:01:38,410 --> 00:01:42,270
‫percorsi dei tour, torniamo a quell'esempio di eliminazione dei

42
00:01:42,270 --> 00:01:46,770
‫tour, quindi aggiungiamo un po' di middleware nello stack qui.

43
00:01:46,770 --> 00:01:50,670
‫Quindi authController, proteggi.

44
00:01:50,670 --> 00:01:52,300
‫Quindi, prima, dobbiamo sempre

45
00:01:52,300 --> 00:01:55,490
‫verificare se un utente ha effettivamente effettuato l'accesso, ok?

46
00:01:55,490 --> 00:01:58,550
‫Quindi, se un amministratore sta cercando di eliminare un

47
00:01:58,550 --> 00:02:00,020
‫tour, dovrebbe comunque

48
00:02:00,020 --> 00:02:02,350
‫controllare se ha effettivamente effettuato l'accesso, giusto?

49
00:02:02,350 --> 00:02:04,610
‫Quindi il primo middleware nello stack qui,

50
00:02:04,610 --> 00:02:06,690
‫sarà sempre quello di protezione.

51
00:02:06,690 --> 00:02:09,130
‫Ma poi, dopo quello,

52
00:02:09,130 --> 00:02:13,113
‫avremo anche authController. limitare.

53
00:02:14,760 --> 00:02:17,000
‫Quindi restringi a, ok?

54
00:02:17,000 --> 00:02:20,180
‫E in questa funzione passeremo quindi alcuni ruoli utente,

55
00:02:20,180 --> 00:02:23,220
‫che saranno autorizzati a interagire con questa risorsa.

56
00:02:23,220 --> 00:02:27,030
‫In questo caso, con l'eliminazione di un tour, ok?

57
00:02:27,030 --> 00:02:29,390
‫Quindi impostiamo questo su admin.

58
00:02:29,390 --> 00:02:31,650
‫Quindi, solo agli amministratori.

59
00:02:31,650 --> 00:02:35,120
‫Ok, quindi ora abbiamo a che fare con i ruoli utente qui.

60
00:02:35,120 --> 00:02:36,650
‫Quindi proprio come l'amministratore.

61
00:02:36,650 --> 00:02:39,584
‫E in questo momento, non lo abbiamo nel nostro modello utente.

62
00:02:39,584 --> 00:02:42,642
‫E quindi implementiamolo rapidamente qui.

63
00:02:42,642 --> 00:02:43,633
‫Va bene.

64
00:02:44,470 --> 00:02:48,160
‫Quindi, facciamolo.

65
00:02:48,160 --> 00:02:52,323
‫In realtà, prima della roba della password, quindi come qui.

66
00:02:56,170 --> 00:02:59,730
‫E qui sotto puoi effettivamente vedere come il nostro gestore

67
00:02:59,730 --> 00:03:02,070
‫di eccezioni non rilevate funziona bene,

68
00:03:02,070 --> 00:03:05,130
‫perché restTo non è ancora una funzione, giusto?

69
00:03:05,130 --> 00:03:06,610
‫Non l'abbiamo ancora implementato.

70
00:03:06,610 --> 00:03:08,810
‫L'ho semplicemente usato per mostrare

71
00:03:08,810 --> 00:03:10,410
‫cosa costruiremo esattamente.

72
00:03:10,410 --> 00:03:12,280
‫E quindi, ovviamente, c'è un

73
00:03:12,280 --> 00:03:13,510
‫errore, quindi

74
00:03:13,510 --> 00:03:17,490
‫nodemon ora sta aspettando il riavvio del server, ok?

75
00:03:17,490 --> 00:03:20,323
‫Ad ogni modo, il ruolo qui dovrebbe

76
00:03:26,240 --> 00:03:30,110
‫essere del tipo String, e ora userò il validatore enum per

77
00:03:30,110 --> 00:03:33,310
‫consentire solo alcuni tipi di ruoli qui da specificare.

78
00:03:33,310 --> 00:03:37,410
‫E questi sono i generali, quindi gli utenti normali,

79
00:03:37,410 --> 00:03:38,860
‫quindi chiamiamoli utenti.

80
00:03:41,170 --> 00:03:42,823
‫Quindi, abbiamo la

81
00:03:44,120 --> 00:03:45,823
‫guida turistica, abbiamo la guida

82
00:03:47,240 --> 00:03:49,043
‫turistica principale e abbiamo l'amministratore.

83
00:03:50,410 --> 00:03:53,250
‫Quindi, sto solo chiamando quell'amministratore, va bene?

84
00:03:53,250 --> 00:03:56,359
‫E questi ruoli utente che abbiamo qui

85
00:03:56,359 --> 00:03:59,450
‫saranno ovviamente specifici del dominio dell'applicazione.

86
00:03:59,450 --> 00:04:02,260
‫Quindi, ad esempio, quando gestisci un sito di community,

87
00:04:02,260 --> 00:04:03,840
‫non avrà molto senso

88
00:04:03,840 --> 00:04:05,940
‫avere una guida e una guida principale.

89
00:04:05,940 --> 00:04:08,570
‫Invece probabilmente avrai, come,

90
00:04:08,570 --> 00:04:11,700
‫moderatori o contributori o membri.

91
00:04:11,700 --> 00:04:13,740
‫Quindi, avrai sempre nomi diversi,

92
00:04:13,740 --> 00:04:16,680
‫a seconda del tipo di applicazione che stai scrivendo.

93
00:04:16,680 --> 00:04:19,023
‫Ma nel nostro caso, questo è ciò che ha senso.

94
00:04:21,290 --> 00:04:24,170
‫Quindi, vogliamo anche impostare un valore predefinito qui,

95
00:04:24,170 --> 00:04:26,540
‫quindi in realtà non dobbiamo specificare

96
00:04:26,540 --> 00:04:29,080
‫sempre quale tipo di utente stiamo creando.

97
00:04:29,080 --> 00:04:32,320
‫E quindi utente, l'utente normale, diciamo, è quello

98
00:04:32,320 --> 00:04:35,220
‫che verrà creato per impostazione predefinita.

99
00:04:35,220 --> 00:04:36,990
‫Quindi ora andiamo avanti ed

100
00:04:36,990 --> 00:04:39,340
‫eliminiamo gli utenti che abbiamo già,

101
00:04:39,340 --> 00:04:41,021
‫perché non hanno

102
00:04:41,021 --> 00:04:45,713
‫alcun ruolo e quindi non ne abbiamo più bisogno in questo modo.

103
00:04:47,780 --> 00:04:48,810
‫Va bene.

104
00:04:48,810 --> 00:04:50,260
‫E quindi andiamo

105
00:04:50,260 --> 00:04:52,630
‫anche avanti e ne creiamo di nuovi.

106
00:04:52,630 --> 00:04:55,980
‫Quindi, mi iscriverò qui come hello@jonas, e quindi

107
00:04:58,610 --> 00:05:03,610
‫ora sarà un utente normale, e ora non siamo riusciti a ottenere

108
00:05:04,180 --> 00:05:06,060
‫alcuna risposta, e questo

109
00:05:06,060 --> 00:05:09,320
‫ovviamente è perché abbiamo questo errore qui, e

110
00:05:09,320 --> 00:05:13,083
‫quindi, diciamo molto estrarre rapidamente questa riga di codice.

111
00:05:14,750 --> 00:05:16,050
‫E ora l'errore è sparito.

112
00:05:17,326 --> 00:05:19,400
‫E quindi ora dovrebbe

113
00:05:19,400 --> 00:05:22,000
‫funzionare, e in effetti ora abbiamo

114
00:05:22,000 --> 00:05:25,120
‫questo utente, con il ruolo di utente, ok?

115
00:05:25,120 --> 00:05:26,293
‫Quindi questa è la

116
00:05:27,920 --> 00:05:29,883
‫nostra impostazione predefinita, ma ora creiamo un amministratore qui.

117
00:05:30,860 --> 00:05:32,330
‫E per renderlo

118
00:05:32,330 --> 00:05:34,630
‫davvero chiaro, mettiamolo anche qui nell'e-mail, e

119
00:05:34,630 --> 00:05:36,780
‫ora dobbiamo davvero specificare il ruolo

120
00:05:40,100 --> 00:05:41,603
‫e impostarlo su admin.

121
00:05:42,860 --> 00:05:47,360
‫Invialo, e così ora abbiamo qui il nostro amministratore di sistema.

122
00:05:47,360 --> 00:05:48,193
‫Freddo.

123
00:05:48,193 --> 00:05:52,930
‫Quindi, torniamo qui, reinseriamo effettivamente questo codice e lo faremo

124
00:05:52,930 --> 00:05:55,210
‫in modo che possiamo

125
00:05:55,210 --> 00:05:58,360
‫effettivamente passare più argomenti in questo restringTo.

126
00:05:58,360 --> 00:06:01,220
‫Quindi, voglio che l'amministratore sia in grado di eliminare i

127
00:06:01,220 --> 00:06:02,974
‫tour, ma anche eliminare una guida.

128
00:06:02,974 --> 00:06:04,000
‫Va bene?

129
00:06:04,000 --> 00:06:05,750
‫E quindi aggiungiamolo anche qui.

130
00:06:08,070 --> 00:06:09,130
‫Va bene?

131
00:06:09,130 --> 00:06:12,210
‫Quindi l'amministratore e la guida principale possono ora eliminare

132
00:06:12,210 --> 00:06:16,200
‫i tour, ma non le guide normali e nemmeno gli utenti normali.

133
00:06:16,200 --> 00:06:17,140
‫Va bene?

134
00:06:17,140 --> 00:06:20,220
‫Quindi è così che funzionerà limitTo, ora

135
00:06:20,220 --> 00:06:22,423
‫andiamo avanti e implementiamolo.

136
00:06:25,270 --> 00:06:28,563
‫Quindi esportazioni. restringTo, e

137
00:06:30,470 --> 00:06:34,120
‫ora, come lo implementeremo effettivamente?

138
00:06:34,120 --> 00:06:36,510
‫Perché di solito non possiamo

139
00:06:36,510 --> 00:06:38,910
‫passare argomenti in una funzione middleware, giusto?

140
00:06:38,910 --> 00:06:41,010
‫Ma in questo caso, lo vogliamo davvero.

141
00:06:41,010 --> 00:06:42,640
‫Vogliamo passare i

142
00:06:42,640 --> 00:06:46,100
‫ruoli, chi è autorizzato ad accedere alla risorsa, giusto?

143
00:06:46,100 --> 00:06:48,800
‫Quindi questo caso, l'amministratore e la guida principale.

144
00:06:48,800 --> 00:06:51,940
‫Quindi abbiamo bisogno di un modo per passare sostanzialmente argomenti

145
00:06:51,940 --> 00:06:54,050
‫nella funzione middleware in un modo

146
00:06:54,050 --> 00:06:55,830
‫che di solito non funziona.

147
00:06:55,830 --> 00:06:57,658
‫Allora, come lo faremo?

148
00:06:57,658 --> 00:07:00,600
‫Bene, qui in realtà creeremo come una

149
00:07:00,600 --> 00:07:03,410
‫funzione wrapper, che poi restituirà

150
00:07:03,410 --> 00:07:07,033
‫la funzione middleware che vogliamo effettivamente creare, ok?

151
00:07:08,070 --> 00:07:10,540
‫Quindi, questa è la funzione restTo, e

152
00:07:10,540 --> 00:07:12,160
‫qui vogliamo passare

153
00:07:12,160 --> 00:07:14,150
‫un numero arbitrario di argomenti.

154
00:07:14,150 --> 00:07:15,870
‫Quindi, in fondo, dei ruoli.

155
00:07:15,870 --> 00:07:18,196
‫Quindi possiamo usare la sintassi del parametro rest,

156
00:07:18,196 --> 00:07:20,793
‫che è di nuovo nuova in ES6, e questo

157
00:07:21,950 --> 00:07:23,240
‫creerà quindi un

158
00:07:23,240 --> 00:07:26,053
‫array di tutti gli argomenti che sono stati specificati, ok?

159
00:07:28,740 --> 00:07:30,350
‫Quindi stiamo creando

160
00:07:30,350 --> 00:07:33,960
‫questa funzione e immediatamente restituiremo una nuova funzione.

161
00:07:33,960 --> 00:07:36,730
‫E questa è la stessa funzione del middleware.

162
00:07:36,730 --> 00:07:40,573
‫Quindi, richiesta, risposta e il prossimo.

163
00:07:43,000 --> 00:07:43,833
‫Va bene?

164
00:07:43,833 --> 00:07:44,890
‫Ha senso?

165
00:07:44,890 --> 00:07:47,190
‫E quindi questa funzione

166
00:07:47,190 --> 00:07:49,643
‫qui fondamentalmente otterrà l'accesso al parametro

167
00:07:49,643 --> 00:07:53,310
‫di questo ruolo qui, perché c'è una chiusura, ok?

168
00:07:53,310 --> 00:07:55,780
‫Quindi, proprio come un commento qui per

169
00:07:55,780 --> 00:07:58,160
‫spiegare, i ruoli sono un array.

170
00:07:58,160 --> 00:08:01,338
‫Quindi, ad esempio, potrebbe essere,

171
00:08:01,338 --> 00:08:06,338
‫in questo caso, amministratore e guida principale, ok?

172
00:08:08,670 --> 00:08:12,490
‫Quindi, quando daremo a un utente l'accesso a un determinato percorso?

173
00:08:12,490 --> 00:08:15,410
‫Bene, in pratica, quando il suo ruolo

174
00:08:15,410 --> 00:08:19,900
‫utente è all'interno di questo array di ruoli che abbiamo passato, giusto?

175
00:08:19,900 --> 00:08:21,930
‫Quindi diciamo che ora abbiamo l'utente

176
00:08:21,930 --> 00:08:24,930
‫normale, che ha un ruolo di semplice utente,

177
00:08:24,930 --> 00:08:26,300
‫quindi scriviamolo qui.

178
00:08:26,300 --> 00:08:29,397
‫Il ruolo ora è solo utente.

179
00:08:29,397 --> 00:08:32,520
‫E quindi fondamentalmente non è contenuto in

180
00:08:32,520 --> 00:08:36,490
‫questo array, quindi quell'utente non ha il permesso, ok?

181
00:08:36,490 --> 00:08:38,320
‫E quindi, scriviamolo in codice.

182
00:08:38,320 --> 00:08:39,670
‫In realtà è abbastanza semplice.

183
00:08:40,650 --> 00:08:45,650
‫Quindi, se non ruoli. include, e ok, ancora una

184
00:08:47,072 --> 00:08:50,660
‫volta include è un metodo array molto carino che

185
00:08:50,660 --> 00:08:54,850
‫è in Java Script disponibile su tutti gli array, ok?

186
00:08:54,850 --> 00:08:57,010
‫Quindi, se questo array di

187
00:08:57,010 --> 00:08:58,900
‫ruoli non include il

188
00:08:58,900 --> 00:09:01,800
‫ruolo dell'utente corrente, non diamo l'autorizzazione a quell'utente.

189
00:09:01,800 --> 00:09:04,740
‫E dove è memorizzato il ruolo dell'utente corrente?

190
00:09:04,740 --> 00:09:07,247
‫Bene, ricordiamo la riga di codice che

191
00:09:07,247 --> 00:09:09,394
‫in realtà abbiamo messo qui, proprio

192
00:09:09,394 --> 00:09:11,620
‫alla fine dove concediamo l'accesso al

193
00:09:11,620 --> 00:09:12,900
‫percorso protetto,

194
00:09:12,900 --> 00:09:16,460
‫memorizziamo l'utente corrente nella richiesta. utente.

195
00:09:16,460 --> 00:09:18,520
‫E ricorda come questo

196
00:09:18,520 --> 00:09:21,929
‫middleware di protezione viene sempre eseguito prima districtTo, giusto?

197
00:09:21,929 --> 00:09:25,330
‫Quindi, qui, prima abbiamo protetto e

198
00:09:25,330 --> 00:09:27,391
‫poi abbiamo limitTo.

199
00:09:27,391 --> 00:09:30,600
‫Quindi, quando questa funzione middleware viene eseguita, questa

200
00:09:30,600 --> 00:09:32,660
‫è già stata completata

201
00:09:32,660 --> 00:09:35,830
‫e ha inserito l'utente corrente nell'oggetto richiesta.

202
00:09:35,830 --> 00:09:38,740
‫E così ora, possiamo usarlo qui.

203
00:09:38,740 --> 00:09:42,480
‫Quindi richiesta. utente. ruolo.

204
00:09:42,480 --> 00:09:45,050
‫Quindi è lì che viene memorizzato il ruolo.

205
00:09:45,050 --> 00:09:45,953
‫Così semplice.

206
00:09:46,950 --> 00:09:50,993
‫In questo caso, creiamo un nuovo errore.

207
00:09:52,970 --> 00:09:55,932
‫Quindi, proprio come prima, e

208
00:09:55,932 --> 00:10:00,932
‫ora diciamo che non hai il permesso di eseguire questa azione.

209
00:10:03,680 --> 00:10:07,000
‫E ora un nuovo codice di stato, che è 403.

210
00:10:07,000 --> 00:10:09,790
‫E questo significa proibito, ok?

211
00:10:09,790 --> 00:10:11,400
‫Quindi c'è davvero

212
00:10:11,400 --> 00:10:14,480
‫un codice di stato http specifico solo per

213
00:10:14,480 --> 00:10:18,180
‫questo caso, quindi per l'autorizzazione in pratica, va bene?

214
00:10:18,180 --> 00:10:22,423
‫E, beh, altrimenti, chiamiamo semplicemente Next.

215
00:10:24,090 --> 00:10:25,580
‫Ed è davvero così.

216
00:10:25,580 --> 00:10:27,910
‫Quindi è così semplice.

217
00:10:27,910 --> 00:10:30,160
‫Quindi ricapitoliamo rapidamente ciò che abbiamo appena fatto qui.

218
00:10:31,650 --> 00:10:35,140
‫Quindi, qui, eseguiamo prima il middleware di protezione.

219
00:10:35,140 --> 00:10:36,770
‫Quindi, restringere il middleware

220
00:10:36,770 --> 00:10:39,410
‫e solo se questi due middleware passano al

221
00:10:39,410 --> 00:10:41,100
‫successivo, si passa al tour principale.

222
00:10:41,100 --> 00:10:42,830
‫E quindi fondamentalmente questo

223
00:10:42,830 --> 00:10:45,419
‫route handler, o questo route controller, è

224
00:10:45,419 --> 00:10:47,790
‫protetto ed è anche limitato da questo

225
00:10:47,790 --> 00:10:49,750
‫middleware che abbiamo appena creato.

226
00:10:49,750 --> 00:10:50,800
‫Quindi in

227
00:10:50,800 --> 00:10:52,650
‫questa funzione, passiamo tutti i

228
00:10:52,650 --> 00:10:55,730
‫ruoli a cui è consentito interagire con questa risorsa.

229
00:10:55,730 --> 00:10:57,794
‫Quindi, in pratica, chi è

230
00:10:57,794 --> 00:11:00,310
‫autorizzato a eseguire questa funzione di gestore, ok?

231
00:11:00,310 --> 00:11:03,370
‫Quindi, questa funzione restringTo verrà quindi

232
00:11:03,370 --> 00:11:06,910
‫eseguita e restituirà la stessa funzione middleware, ok?

233
00:11:06,910 --> 00:11:11,140
‫E quella stessa funzione middleware è in realtà questa.

234
00:11:11,140 --> 00:11:13,010
‫Avrà poi, per

235
00:11:13,010 --> 00:11:16,500
‫via della chiusura, accesso ai ruoli, ok?

236
00:11:16,500 --> 00:11:19,350
‫E quindi, diciamo che il ruolo dell'utente corrente, che

237
00:11:19,350 --> 00:11:24,180
‫è, ricorda, memorizzato in req. utente. ruolo, no?

238
00:11:24,180 --> 00:11:27,020
‫Quindi, diciamo che il suo ruolo è

239
00:11:27,020 --> 00:11:29,970
‫utente, e poiché quel ruolo non è nell'array di

240
00:11:29,970 --> 00:11:32,920
‫questo ruolo, beh, allora otteniamo questo errore, ok?

241
00:11:32,920 --> 00:11:37,583
‫E quindi questo è ciò che questo ruoli. include i test qui per, ok?

242
00:11:38,450 --> 00:11:40,410
‫Ma ovviamente, se è

243
00:11:40,410 --> 00:11:42,860
‫incluso, si passa al middleware successivo.

244
00:11:42,860 --> 00:11:46,130
‫Che di nuovo, è quindi il gestore del percorso stesso.

245
00:11:46,130 --> 00:11:46,963
‫Freddo.

246
00:11:46,963 --> 00:11:48,120
‫Quindi, spero che abbia senso.

247
00:11:48,120 --> 00:11:50,453
‫Ora andiamo avanti e testiamolo rapidamente.

248
00:11:51,390 --> 00:11:52,580
‫Va bene?

249
00:11:52,580 --> 00:11:54,340
‫Quindi in questo

250
00:11:54,340 --> 00:11:58,420
‫momento abbiamo questo token qui, memorizzato nella variabile JTW, giusto?

251
00:11:58,420 --> 00:12:00,890
‫Quindi ricordatelo dall'ultima lezione.

252
00:12:00,890 --> 00:12:03,233
‫Quindi, siamo in questo ambiente

253
00:12:03,233 --> 00:12:06,230
‫di sviluppo, e quindi ecco quella variabile.

254
00:12:06,230 --> 00:12:08,080
‫Quindi esattamente quello che è quaggiù.

255
00:12:09,540 --> 00:12:10,373
‫Va bene?

256
00:12:10,373 --> 00:12:12,600
‫Quindi, se ora dovessimo

257
00:12:12,600 --> 00:12:16,914
‫eliminare un tour, dovremmo specificare quella variabile lì, giusto?

258
00:12:16,914 --> 00:12:19,936
‫Quindi andiamo all'autorizzazione, il token al portatore,

259
00:12:19,936 --> 00:12:21,970
‫e poi in realtà

260
00:12:21,970 --> 00:12:24,470
‫lo mette già qui per noi.

261
00:12:24,470 --> 00:12:25,980
‫Quindi sa già

262
00:12:25,980 --> 00:12:28,480
‫che questo è quello che vogliamo usare,

263
00:12:28,480 --> 00:12:30,544
‫perché, beh, l'abbiamo usato prima, ok?

264
00:12:30,544 --> 00:12:32,960
‫Ora, voglio iniziare mostrandoti che

265
00:12:32,960 --> 00:12:36,710
‫un utente normale non può eliminare un tour ora, ok?

266
00:12:36,710 --> 00:12:40,183
‫E quindi iniziamo accedendo come utente normale.

267
00:12:41,300 --> 00:12:44,253
‫E quindi questo è ciao, giusto?

268
00:12:45,530 --> 00:12:50,530
‫Ricorda, in questo momento abbiamo hello@jonas. io, che è un utente normale,

269
00:12:50,670 --> 00:12:54,410
‫e abbiamo admin@jonas. io.

270
00:12:54,410 --> 00:12:58,350
‫E abbiamo ancora questo vecchio qui, liberiamocene.

271
00:12:58,350 --> 00:12:59,183
‫Va bene.

272
00:12:59,183 --> 00:13:01,803
‫E quindi inizierò con hello@jonas. io.

273
00:13:03,630 --> 00:13:04,650
‫Va bene?

274
00:13:04,650 --> 00:13:08,470
‫Quindi, accedendo, quel token verrà archiviato nella variabile d'ambiente

275
00:13:08,470 --> 00:13:10,770
‫e ora siamo pronti per

276
00:13:10,770 --> 00:13:12,670
‫eliminare un tour.

277
00:13:13,530 --> 00:13:16,440
‫In realtà dobbiamo anche ottenere un ID ora,

278
00:13:16,440 --> 00:13:18,940
‫quindi prendiamone uno velocemente da qui,

279
00:13:18,940 --> 00:13:22,063
‫quindi in pratica elimineremo uno dei nostri tour qui.

280
00:13:25,450 --> 00:13:27,420
‫Quindi usiamo solo l'ultimo qui.

281
00:13:27,420 --> 00:13:28,683
‫Quindi, l'osservatore di stelle.

282
00:13:31,356 --> 00:13:32,189
‫Va bene?

283
00:13:32,189 --> 00:13:35,570
‫E vediamo se riceviamo il nostro messaggio di errore.

284
00:13:35,570 --> 00:13:38,290
‫E, in effetti, non hai il permesso di

285
00:13:38,290 --> 00:13:39,620
‫eseguire questa azione.

286
00:13:39,620 --> 00:13:41,610
‫Quindi, 403.

287
00:13:41,610 --> 00:13:44,823
‫Quindi, in effetti, sta funzionando, giusto?

288
00:13:46,150 --> 00:13:47,630
‫Ma, per

289
00:13:47,630 --> 00:13:50,433
‫completare ora, accediamo ovviamente come amministratore.

290
00:13:52,830 --> 00:13:53,823
‫Allora, amministratore.

291
00:13:55,480 --> 00:13:56,540
‫Login.

292
00:13:56,540 --> 00:14:00,000
‫E quindi questo token è ora memorizzato in questa variabile.

293
00:14:00,000 --> 00:14:01,500
‫Quindi, se lo esegui

294
00:14:01,500 --> 00:14:04,910
‫ora, dovremmo essere in grado di eliminare efficacemente il tour.

295
00:14:04,910 --> 00:14:05,743
‫Voglio vedere?

296
00:14:07,720 --> 00:14:09,240
‫Ed è andato.

297
00:14:09,240 --> 00:14:11,920
‫Quindi abbiamo un codice 204, nessun contenuto, che

298
00:14:11,920 --> 00:14:13,999
‫è lo standard durante l'eliminazione,

299
00:14:13,999 --> 00:14:16,259
‫ma ora se otteniamo tutti i

300
00:14:16,259 --> 00:14:19,090
‫nostri tour, ora dovremmo vedere un numero otto

301
00:14:19,090 --> 00:14:20,460
‫qui, quindi solo

302
00:14:20,460 --> 00:14:24,350
‫otto risultati, e ciò significa che l'ultimo è ora andato, ok?

303
00:14:24,350 --> 00:14:26,520
‫E quindi in questo momento, come

304
00:14:26,520 --> 00:14:28,496
‫abbiamo appena dimostrato, un

305
00:14:28,496 --> 00:14:31,671
‫amministratore ha l'autorizzazione per eliminare efficacemente i tour, ok?

306
00:14:31,671 --> 00:14:34,372
‫E non posso davvero sottolineare

307
00:14:34,372 --> 00:14:38,060
‫abbastanza quanto sia importante questo pezzo di codice qui.

308
00:14:38,060 --> 00:14:40,980
‫Quindi, in pratica, dove otteniamo il ruolo

309
00:14:40,980 --> 00:14:43,550
‫dell'utente corrente dal middleware prima, ok?

310
00:14:43,550 --> 00:14:46,804
‫Quindi, memorizzare l'utente nella richiesta come abbiamo

311
00:14:46,804 --> 00:14:48,770
‫fatto qui, è davvero

312
00:14:48,770 --> 00:14:52,170
‫cruciale affinché questo passaggio successivo funzioni effettivamente, ok?

313
00:14:52,170 --> 00:14:55,760
‫Quindi, l'ID codificato nel token web Jason è ciò che fa in modo

314
00:14:55,760 --> 00:14:57,990
‫che il nostro codice sappia se l'utente

315
00:14:57,990 --> 00:15:01,470
‫che sta tentando di eseguire l'azione è un utente, o se è

316
00:15:01,470 --> 00:15:04,900
‫un amministratore, o se è una guida per i lead, o altro.

317
00:15:04,900 --> 00:15:06,790
‫Di nuovo, perché i

318
00:15:06,790 --> 00:15:09,730
‫dati provengono da questo middleware di protezione.

319
00:15:09,730 --> 00:15:10,563
‫Grande.

320
00:15:10,563 --> 00:15:13,790
‫Questo è stato un altro pezzo importante del

321
00:15:13,790 --> 00:15:17,040
‫puzzle nell'implementazione del nostro flusso di lavoro di autenticazione qui.

322
00:15:17,040 --> 00:15:19,821
‫E, naturalmente, vuoi limitare molti

323
00:15:19,821 --> 00:15:23,479
‫altri percorsi, ad esempio, come l'aggiornamento qui, ok?

324
00:15:23,479 --> 00:15:25,300
‫Ma lo lascerò per

325
00:15:25,300 --> 00:15:27,320
‫un punto successivo del corso, ok?

326
00:15:27,320 --> 00:15:29,420
‫Proprio qui, volevo solo

327
00:15:29,420 --> 00:15:31,663
‫mostrarti come funziona tutto questo, ok?

328
00:15:32,730 --> 00:15:35,600
‫Quindi, penso di averlo fatto con successo.

329
00:15:35,600 --> 00:15:38,620
‫Spero che tu abbia capito come funziona e, naturalmente,

330
00:15:38,620 --> 00:15:41,668
‫in caso contrario, puoi sempre fare una domanda nella

331
00:15:41,668 --> 00:15:44,300
‫sezione ufficiale di domande e risposte.

332
00:15:44,300 --> 00:15:47,840
‫Ad ogni modo, ci sono altri fantastici contenuti in arrivo in questo

333
00:15:47,840 --> 00:15:49,483
‫momento e quindi, andiamo avanti.

