1
00:00:00,000 --> 00:00:05,021
[MUSIC]

2
00:00:05,021 --> 00:00:09,395
Ora che abbiamo compreso la necessità di autenticazione di base nella nostra

3
00:00:09,395 --> 00:00:14,383
applicazione Express, procediamo all'esercizio in cui aggiungeremo

4
00:00:14,383 --> 00:00:19,372
l'autenticazione di base al server Confusione che abbiamo sviluppato finora,

5
00:00:19,372 --> 00:00:24,050
il server API REST Express.

6
00:00:24,050 --> 00:00:29,170
Impareremo, lungo la strada, come possiamo usare l'autenticazione di base all'interno del nostro server.

7
00:00:29,170 --> 00:00:34,811
E poi negli esercizi successivi, amplieremo ulteriormente questa idea

8
00:00:34,811 --> 00:00:41,107
per aggiungere un servizio di autenticazione completo per il nostro server API REST Express.

9
00:00:42,965 --> 00:00:46,576
In questo esercizio, andremo al server Confusione,

10
00:00:46,576 --> 00:00:49,290
quello su cui abbiamo lavorato finora.

11
00:00:49,290 --> 00:00:54,333
Quindi devi aver completato l'implementazione del secondo incarico

12
00:00:54,333 --> 00:00:59,553
ormai, dove avresti sviluppato le promozioni e il modello leader.

13
00:00:59,553 --> 00:01:04,289
E anche aggiornato i percorsi per il router leader e

14
00:01:04,289 --> 00:01:09,470
il router promozionale nella vostra applicazione server Confusione.

15
00:01:09,470 --> 00:01:12,960
Quindi all'interno di questo codice, andiamo a app.js e

16
00:01:12,960 --> 00:01:17,392
quindi aggiungere l'autenticazione di base in app.js.

17
00:01:17,392 --> 00:01:22,290
Quindi in app.js come abbiamo capito il modo in cui

18
00:01:22,290 --> 00:01:26,970
la via di mezzo funziona nell'applicazione Express.

19
00:01:26,970 --> 00:01:31,010
Quindi iniziamo qui nel app.js

20
00:01:31,010 --> 00:01:36,640
importando tutti i vari moduli nodo qui.

21
00:01:36,640 --> 00:01:42,650
E poi, dopo, iniziamo qui dicendo prima app.use logger dev.

22
00:01:42,650 --> 00:01:46,410
Quindi tutti questi saranno applicati alla nostra applicazione.

23
00:01:46,410 --> 00:01:51,978
E poi, questa chiamata qui app.use (express.static)

24
00:01:51,978 --> 00:01:58,128
è ciò che ci consente di servire dati statici dalla cartella pubblica.

25
00:01:58,128 --> 00:02:03,068
Ora, vogliono fare l'autenticazione subito prima di

26
00:02:03,068 --> 00:02:08,870
permettere al client di essere in grado di recuperare i dati dal nostro server.

27
00:02:08,870 --> 00:02:14,570
Quindi, proprio lì, entreremo e aggiungeremo un badge di autenticazione.

28
00:02:14,570 --> 00:02:18,090
Quindi noti che tutto ciò che viene dopo questo,

29
00:02:18,090 --> 00:02:22,970
tutto il middleware che è montato e viene dopo questo particolare punto.

30
00:02:22,970 --> 00:02:27,070
Dovremo passare attraverso la fase di autorizzazione prima

31
00:02:27,070 --> 00:02:29,550
che il middleware possa essere accesso.

32
00:02:29,550 --> 00:02:34,709
Quindi proprio lì, ho intenzione di aggiungere app.use e

33
00:02:34,709 --> 00:02:41,600
quindi aggiungere una funzione chiamata auth, che ho intenzione di implementare in questo momento.

34
00:02:41,600 --> 00:02:46,180
Quindi, facendo questo, ciò che stiamo specificando è il default,

35
00:02:46,180 --> 00:02:50,200
il client può accedere a qualsiasi di questi,

36
00:02:50,200 --> 00:02:56,070
sia le loro risorse statiche nella cartella pubblica, o qualsiasi delle risorse,

37
00:02:56,070 --> 00:03:00,140
piatti, promozioni, o leader, o anche gli utenti come vedremo più avanti.

38
00:03:02,150 --> 00:03:05,700
Il cliente deve essere prima autorizzato.

39
00:03:05,700 --> 00:03:08,220
Quindi, proprio lì, aggiungeremo l'autenticazione.

40
00:03:08,220 --> 00:03:15,960
Quindi lasciami aggiungere la funzione qui chiamata auth proprio lì.

41
00:03:15,960 --> 00:03:19,849
E poi usarlo immediatamente all'interno

42
00:03:19,849 --> 00:03:23,147
della nostra applicazione Express come middleware lì.

43
00:03:23,147 --> 00:03:27,826
Quindi questa funzione, auth prenderà tre parametri,

44
00:03:27,826 --> 00:03:33,914
l'oggetto richiesta, l'oggetto risorsa e l'oggetto successivo, sì.

45
00:03:37,015 --> 00:03:41,830
Quindi all'interno di questa funzione fammi prima,

46
00:03:41,830 --> 00:03:48,605
solo per sapere cosa è contenuto nell'intestazione della richiesta.

47
00:03:50,265 --> 00:03:56,175
Permettetemi di registrare le intestazioni delle richieste proprio lì solo per dimostrarvi,

48
00:03:56,175 --> 00:03:59,970
perché una volta aggiunta l'intestazione di autorizzazione,

49
00:03:59,970 --> 00:04:03,390
vogliamo essere in grado di vederlo proprio lì.

50
00:04:03,390 --> 00:04:07,390
Quindi faremo prima un registro della console,

51
00:04:07,390 --> 00:04:10,142
solo per vedere cosa sta arrivando dal lato client.

52
00:04:10,142 --> 00:04:14,379
Quindi, fammi ottenere la loro

53
00:04:14,379 --> 00:04:20,401
intestazione di autorizzazione dicendo

54
00:04:20,401 --> 00:04:26,900
req.headers .authorization.

55
00:04:26,900 --> 00:04:31,120
Quindi questo è dove entreremo in possesso dell'intestazione di autorizzazione che viene aggiunta

56
00:04:31,120 --> 00:04:33,320
dal nostro lato client.

57
00:04:33,320 --> 00:04:37,830
Se non c'è, ovviamente, dobbiamo agire di conseguenza.

58
00:04:37,830 --> 00:04:44,493
Quindi, se AuthHeader è nullo, il

59
00:04:44,493 --> 00:04:48,992
che significa che non c'è alcuna intestazione di autenticazione nella nostra

60
00:04:48,992 --> 00:04:53,653
richiesta in arrivo, ovviamente, il nostro client non ha incluso il nome utente e

61
00:04:53,653 --> 00:04:56,650
la password nell'intestazione di autenticazione.

62
00:04:56,650 --> 00:05:01,230
Quindi dobbiamo sfidare il nostro cliente a fornire queste informazioni.

63
00:05:01,230 --> 00:05:06,338
Quindi, se l'intestazione di autorizzazione è nullo, allora vedremo,

64
00:05:06,338 --> 00:05:12,130
var err nuovo errore,

65
00:05:12,130 --> 00:05:19,140
quindi non permetteremo alla nostra richiesta client di andare oltre questo punto.

66
00:05:19,140 --> 00:05:23,803
Quindi diremo, non sei autenticato,

67
00:05:23,803 --> 00:05:28,222
e poi sfideremo il cliente lì.

68
00:05:28,222 --> 00:05:33,196
Quindi diremo res.setHeader, quindi

69
00:05:33,196 --> 00:05:38,684
stiamo andando a impostare l'intestazione nel

70
00:05:38,684 --> 00:05:46,061
messaggio di risposta dicendo WWW-Authenticate,

71
00:05:46,061 --> 00:05:50,520
e dalla lezione precedente,

72
00:05:50,520 --> 00:05:55,493
vedrete perché stiamo mettendo questo

73
00:05:55,493 --> 00:06:00,120
nell'intestazione della risposta.

74
00:06:00,120 --> 00:06:04,480
E poi diremo err status.401.

75
00:06:04,480 --> 00:06:07,710
401 è un accesso non autorizzato.

76
00:06:07,710 --> 00:06:12,740
E poi ci sarà semplicemente generare la nostra chiamata dopo con l'intestazione.

77
00:06:12,740 --> 00:06:17,960
Quindi ciò significa che salterà tutto questo e andrà al gestore degli errori,

78
00:06:17,960 --> 00:06:20,710
dove il gestore degli errori costruirà il messaggio di risposta e

79
00:06:20,710 --> 00:06:25,880
rimanderà al mio client lì.

80
00:06:25,880 --> 00:06:31,290
Quindi, se il client non ha incluso l'intestazione di autenticazione o

81
00:06:31,290 --> 00:06:34,690
l'intestazione di autorizzazione, allora ho intenzione di sfidare il client a

82
00:06:34,690 --> 00:06:38,980
chiedergli di fornirmi l'intestazione di autorizzazione lì.

83
00:06:38,980 --> 00:06:45,570
Quindi, se no, allora so che l'intestazione di autorizzazione esiste.

84
00:06:45,570 --> 00:06:51,553
Quindi oltre questo punto, diremo var auth,

85
00:06:51,553 --> 00:06:55,760
e ho intenzione di estrarre l'intestazione di autorizzazione.

86
00:06:57,460 --> 00:07:02,880
E poi dal momento che AuthHeader è una stringa,

87
00:07:02,880 --> 00:07:07,650
ho intenzione di dividere quel valore e

88
00:07:07,650 --> 00:07:12,690
questa intestazione di autorizzazione, ho intenzione di dividere il valore.

89
00:07:12,690 --> 00:07:17,350
Quindi, come puoi vedere, il buffer ti consente di dividere il valore e

90
00:07:17,350 --> 00:07:23,805
quindi diamo anche la codifica del buffer che è la codifica Base64 qui.

91
00:07:23,805 --> 00:07:28,790
Quindi lo convertiremo in un buffer dividendolo in due parti,

92
00:07:30,250 --> 00:07:32,390
usando lo spazio come parte di divisione.

93
00:07:32,390 --> 00:07:37,614
Quindi, quando hai guardato l'intestazione di autorizzazione, hai visto perché lo spazio

94
00:07:37,614 --> 00:07:42,656
separa il valore dicendo basic, e poi ti dà il resto della

95
00:07:42,656 --> 00:07:48,172
stringa codificata Base64 che contiene il nome utente e la password.

96
00:07:48,172 --> 00:07:53,510
E da questo, vogliamo estrarre il nome utente e la password.

97
00:07:53,510 --> 00:07:59,970
Quindi stiamo andando a dividere quel valore, e poi stiamo solo andando a prendere in considerazione Così

98
00:07:59,970 --> 00:08:07,510
quando si divide la stringa utilizzando questo, si dividerà che in un array.

99
00:08:07,510 --> 00:08:11,780
E il primo elemento della matrice contiene Basic.

100
00:08:11,780 --> 00:08:17,370
Il secondo elemento dell'array è dove esiste questa stringa codificata base64.

101
00:08:17,370 --> 00:08:21,280
Ecco perché stiamo guardando solo il secondo elemento di questo array.

102
00:08:21,280 --> 00:08:27,800
Quindi questa suddivisione causerà la divisione della stringa in una matrice di due elementi.

103
00:08:27,800 --> 00:08:32,944
Quindi potremmo, stiamo raccogliendo la stringa codificata base64 da quello.

104
00:08:32,944 --> 00:08:39,820
E poi noi in questo Buffer, e poi stiamo andando a convertirlo in stringa.

105
00:08:39,820 --> 00:08:45,830
E poi di nuovo, dividere la stringa ancora una volta perché la stringa

106
00:08:45,830 --> 00:08:51,200
stessa conterrà il nome utente e la password separati da due punti.

107
00:08:51,200 --> 00:08:56,040
Quindi, ho intenzione di dividerlo usando i due punti come

108
00:08:56,040 --> 00:09:01,350
punto di divisione per questa stringa qui.

109
00:09:01,350 --> 00:09:05,727
Quindi nota che sto caricando due divisioni qui, una sullo spazio e

110
00:09:05,727 --> 00:09:11,110
la seconda, usando i due punti che separano il nome utente e la password.

111
00:09:11,110 --> 00:09:18,570
Quindi alla fine di questa variabile auth dovrebbe essere un array contenente due elementi,

112
00:09:18,570 --> 00:09:24,460
il nome utente e la password che viene estratto dalla stringa base64.

113
00:09:24,460 --> 00:09:31,744
Quindi, a questo punto, quello che farò è,

114
00:09:31,744 --> 00:09:35,908
solo per la tua chiarezza,

115
00:09:35,908 --> 00:09:40,695
dirò semplicemente var

116
00:09:40,695 --> 00:09:46,733
username = auth [0] e poi,

117
00:09:46,733 --> 00:09:51,970
var password = auth [1].

118
00:09:51,970 --> 00:09:57,760
Quindi ora ho estratto il nome utente e la password dalla mia intestazione di autorizzazione.

119
00:09:57,760 --> 00:10:02,210
Ora utilizzerò un valore predefinito per il nome utente e

120
00:10:02,210 --> 00:10:06,030
la password in questa implementazione.

121
00:10:06,030 --> 00:10:10,950
Più tardi, vedremo che possiamo consentire agli utenti di creare il proprio nome utente e

122
00:10:10,950 --> 00:10:11,530
password.

123
00:10:11,530 --> 00:10:14,304
Ma per il momento, ho intenzione di usare,

124
00:10:17,358 --> 00:10:20,925
il nome utente e la password codificati come amministratore.

125
00:10:23,615 --> 00:10:30,705
E la password sarà solo password.

126
00:10:30,705 --> 00:10:32,778
Per questo esercizio di base,

127
00:10:32,778 --> 00:10:37,970
useremo questo come nome utente e password predefiniti.

128
00:10:39,468 --> 00:10:47,520
Se il nome utente che ottengo è admin e la password è la password stringa.

129
00:10:47,520 --> 00:10:52,490
Quindi sto bene per consentire che la

130
00:10:52,490 --> 00:10:56,950
richiesta del client venga passata attraverso il middleware successivo, quindi, dirò il prossimo.

131
00:10:56,950 --> 00:11:01,130
Quindi, quando dico dopo, questo significa che dall'autenticazione la

132
00:11:01,130 --> 00:11:05,840
loro richiesta passerà sul prossimo set di middleware qui e

133
00:11:05,840 --> 00:11:10,660
quindi Express cercherà di abbinare la richiesta specifica a

134
00:11:11,830 --> 00:11:15,420
middleware specifico che servirà quella richiesta.

135
00:11:15,420 --> 00:11:19,440
Quindi questo è dove gli permetteremo di passare attraverso.

136
00:11:19,440 --> 00:11:24,000
In caso contrario, ciò significa che il nome utente e

137
00:11:24,000 --> 00:11:29,260
la password non corrispondono alla richiesta,

138
00:11:29,260 --> 00:11:33,010
il nome utente e la password predefiniti che sto impostando.

139
00:11:33,010 --> 00:11:34,930
Quindi questo significa che c'è un errore.

140
00:11:34,930 --> 00:11:39,310
Quindi, in questo caso, ho intenzione di causare di nuovo un errore qui,

141
00:11:39,310 --> 00:11:43,280
quindi diremo altro, Errore.

142
00:11:43,280 --> 00:11:49,540
Quindi genereremo nuovamente un errore e quindi sfideremo il cliente

143
00:11:49,540 --> 00:11:55,430
a inviare le informazioni di autorizzazione corrette, il nome utente e la password qui.

144
00:11:55,430 --> 00:11:56,730
Quindi questo è tutto.

145
00:11:56,730 --> 00:12:01,100
Questo po 'di middleware che abbiamo appena implementato qui,

146
00:12:01,100 --> 00:12:04,010
middleware di autorizzazione che abbiamo appena implementato qui.

147
00:12:04,010 --> 00:12:08,840
È sufficiente per implementare l'autenticazione di base all'interno dell'applicazione.

148
00:12:08,840 --> 00:12:10,300
Quindi, dopo aver apportato queste modifiche,

149
00:12:10,300 --> 00:12:15,210
salviamo le modifiche e poi vedremo come funziona effettivamente nella pratica.

150
00:12:15,210 --> 00:12:16,770
Salviamo le modifiche.

151
00:12:16,770 --> 00:12:20,600
E poi andremo ad avviare il nostro server.

152
00:12:20,600 --> 00:12:22,980
Ora, andando al terminale, ovviamente,

153
00:12:22,980 --> 00:12:26,916
assicurati che tu sia il server MongoDB sia attivo e funzionante.

154
00:12:26,916 --> 00:12:34,390
In caso contrario, il server Express non verrà avviato.

155
00:12:34,390 --> 00:12:38,350
Quindi ho il tipo di prompt npm start, e

156
00:12:38,350 --> 00:12:41,810
quindi il tuo server Express sarà attivo e funzionante.

157
00:12:41,810 --> 00:12:46,760
Ora, apri nella finestra di navigazione in incognito nel tuo browser.

158
00:12:46,760 --> 00:12:51,280
Il motivo per cui ti sto chiedendo di utilizzare una finestra di navigazione in incognito è che quando digiti

159
00:12:51,280 --> 00:12:55,820
il nome utente e la password, verrà memorizzato nella cache dal tuo browser.

160
00:12:55,820 --> 00:12:59,490
Quindi, se usi una finestra di navigazione in incognito, se riavvii il browser...

161
00:12:59,490 --> 00:13:01,710
Quindi la cache verrà cancellata automaticamente,

162
00:13:01,710 --> 00:13:04,300
quindi queste informazioni non verranno ricordate.

163
00:13:04,300 --> 00:13:07,500
Ora cosa succede se si digita il nome utente e la password, verrà memorizzato nella cache,

164
00:13:07,500 --> 00:13:11,570
quindi successivamente quando si tenta di accedere al server, le informazioni memorizzate nella cache

165
00:13:11,570 --> 00:13:15,840
verranno automaticamente inviate nella richiesta che si genera.

166
00:13:15,840 --> 00:13:18,710
Ecco perché è importante

167
00:13:18,710 --> 00:13:23,400
utilizzare una finestra di navigazione in incognito solo per mostrare che l'autenticazione di base funziona.

168
00:13:23,400 --> 00:13:31,140
Quindi nella barra degli indirizzi del browser digitiamo localhost: 3000 e vediamo cosa succede.

169
00:13:31,140 --> 00:13:36,920
Quindi, quando digiti localhost: 3000 vedi immediatamente che il tuo browser apre

170
00:13:36,920 --> 00:13:43,290
questo dialogo in cima chiedendoti di digitare il nome utente e la password.

171
00:13:43,290 --> 00:13:50,240
Se non lo digiti, fammi digitare un nome utente casuale e poi vedere cosa succede.

172
00:13:50,240 --> 00:13:54,000
Quindi, se digito un nome utente e una password casuali,

173
00:13:54,000 --> 00:13:57,260
vedi che la richiesta viene rifiutata.

174
00:13:57,260 --> 00:14:00,890
Non mi è permesso accedere al server, e

175
00:14:00,890 --> 00:14:06,100
quindi se il server dirà di nuovo che il client non è autorizzato.

176
00:14:06,100 --> 00:14:10,330
E così tornerà e ci sfiderà di nuovo per la corretta autenticazione.

177
00:14:10,330 --> 00:14:12,820
Quindi lasciami digitare l'autenticazione corrente.

178
00:14:12,820 --> 00:14:17,670
Quindi lasciami digitare admin e la password come password.

179
00:14:17,670 --> 00:14:23,650
E poi accedi e vedrai che ora l'

180
00:14:23,650 --> 00:14:28,530
applicazione Express ti consentirà di accedere al valore predefinito,

181
00:14:28,530 --> 00:14:34,700
che in questo caso è il file Index.html da quella cartella pubblica statica.

182
00:14:34,700 --> 00:14:39,590
Ora, la stessa cosa se stai cercando di accedere localhost: piatti

183
00:14:39,590 --> 00:14:43,260
senza l'autorizzazione, allora non funzionerà.

184
00:14:43,260 --> 00:14:49,320
E te lo dimostrero' usando il postino tra un minuto.

185
00:14:50,630 --> 00:14:56,011
Ora dopo aver visto come funziona l'autenticazione, andiamo

186
00:14:56,011 --> 00:15:00,985
a guardare cosa è successo sulla console sul nostro sito server.

187
00:15:06,181 --> 00:15:11,141
Andando alla console sul nostro sito server si vede che un sacco di informazioni

188
00:15:11,141 --> 00:15:13,769
sono state stampate qui, quindi come hai visto,

189
00:15:13,769 --> 00:15:17,030
stavamo disconnettendo le intestazioni delle richieste qui.

190
00:15:17,030 --> 00:15:21,040
Quindi questa è la prima richiesta che è arrivata con l'intestazione della richiesta.

191
00:15:21,040 --> 00:15:26,860
E qui vedi che non c'è alcuna intestazione di autorizzazione nella richiesta.

192
00:15:26,860 --> 00:15:34,620
E così il tuo server lo ha rifiutato con un 401 che chiede al nostro cliente di autorizzarsi.

193
00:15:34,620 --> 00:15:40,240
La seconda volta anche da quando non abbiamo digitato l'autorizzazione corretta che il

194
00:15:40,240 --> 00:15:41,916
server ha rifiutato.

195
00:15:41,916 --> 00:15:48,390
Ovviamente, ora noti che nell'intestazione, proprio lì, l'autorizzazione è

196
00:15:48,390 --> 00:15:52,820
effettivamente inclusa lì, e vedi il modo in cui l'autorizzazione è inclusa.

197
00:15:52,820 --> 00:15:56,650
Dice Basic separato da uno spazio e

198
00:15:56,650 --> 00:16:02,980
separato dalla stringa codificata a 64 bit che contiene il nome utente e la password.

199
00:16:02,980 --> 00:16:06,080
E poi, vediamo che il server

200
00:16:06,080 --> 00:16:09,540
ha rifiutato questo perché l'autorizzazione era sbagliata a quel punto.

201
00:16:09,540 --> 00:16:14,452
Ora più tardi, abbiamo digitato il nome utente e la password corretti.

202
00:16:14,452 --> 00:16:18,938
Quindi proprio lì nella terza richiesta che è arrivata, abbiamo digitato il nome utente e la

203
00:16:18,938 --> 00:16:19,597
password corretti.

204
00:16:19,597 --> 00:16:27,323
E così, questo è il motivo per cui vedi che l'intestazione della richiesta contiene l'autorizzazione

205
00:16:27,323 --> 00:16:34,180
e questa stringa usa la codifica corretta del nome utente e della password.

206
00:16:34,180 --> 00:16:35,720
Come faccio a saperlo?

207
00:16:35,720 --> 00:16:38,384
Bene, ho controllato e so

208
00:16:38,384 --> 00:16:42,337
che, questa è la versione codificata esterna di base della stringa lì.

209
00:16:42,337 --> 00:16:47,470
Vedremo anche che dalla nostra immagine postino o cosa.

210
00:16:48,740 --> 00:16:53,740
Ora, si vede che la richiesta è stata accettata e

211
00:16:53,740 --> 00:16:55,740
ha restituito il valore correttamente.

212
00:16:57,210 --> 00:17:05,150
E poi, naturalmente, successivamente, il cliente ha richiesto una favicon, l'icona.

213
00:17:05,150 --> 00:17:11,590
E dato che non abbiamo la favicon nel nostro lato server, risponde con il 404 e,

214
00:17:11,590 --> 00:17:15,560
naturalmente, la tua icona preferita non viene visualizzata nella barra degli indirizzi.

215
00:17:15,560 --> 00:17:18,640
Quindi va bene, ma nota in particolare.

216
00:17:18,640 --> 00:17:21,430
Quelli particolari richiesti sono arrivati,

217
00:17:21,430 --> 00:17:25,030
dove è stata inclusa l'intestazione di autorizzazione corretta.

218
00:17:25,030 --> 00:17:28,490
E così, ha avuto successo in quel momento.

219
00:17:28,490 --> 00:17:33,680
Proviamo a vedere come potremmo fare la stessa cosa con la postmap.

220
00:17:33,680 --> 00:17:38,480
Quindi qui ho la mia finestra di postmap aperta.

221
00:17:38,480 --> 00:17:42,250
E così nella mia finestra Postman ho intenzione di digitare

222
00:17:44,160 --> 00:17:50,670
un get to localhost: al mio server, e quindi inviare la richiesta e

223
00:17:50,670 --> 00:17:57,260
si noterà immediatamente che sfida dicendo 401 non autorizzato.

224
00:17:57,260 --> 00:18:01,890
Quindi questo è il messaggio di risposta dal lato server,

225
00:18:01,890 --> 00:18:06,580
in modo da notare ciò che salva, 401 Non autorizzato.

226
00:18:06,580 --> 00:18:12,550
E dice che la risposta deve includere un campo di intestazione WWW-Authenticate.

227
00:18:12,550 --> 00:18:18,153
E questo sfiderà il cliente a inviare le informazioni di autorizzazione,

228
00:18:18,153 --> 00:18:20,083
il nome utente e la password.

229
00:18:20,083 --> 00:18:25,833
Quindi, in anteprima, vediamo che la frase non sei autenticato e

230
00:18:25,833 --> 00:18:27,940
quindi il codice 401 qui.

231
00:18:27,940 --> 00:18:31,341
Ora guardando le intestazioni del messaggio di risposta.

232
00:18:31,341 --> 00:18:36,781
Quando guardi l'intestazione del messaggio di risposta, puoi vedere in particolare

233
00:18:36,781 --> 00:18:41,718
questa intestazione inclusa lì, che è www.authenticatebasic.

234
00:18:41,718 --> 00:18:46,522
Ora, come facciamo l'autenticazione o l'autorizzazione in post?

235
00:18:46,522 --> 00:18:51,090
Quindi questo è dove andrebbero a questo proprio sotto questa casella qui,

236
00:18:51,090 --> 00:18:53,952
vedrete questa autorizzazione qui.

237
00:18:53,952 --> 00:18:58,050
E quando fai clic sull'autorizzazione, in questo momento dice NO AUTH..

238
00:18:58,050 --> 00:19:01,240
Usiamo l'autenticazione di base.

239
00:19:01,240 --> 00:19:04,820
Quindi, quando dico autenticazione di base,

240
00:19:04,820 --> 00:19:08,530
mi darà questi due campi qui dove posso digitare il nome utente e la password.

241
00:19:08,530 --> 00:19:11,160
Permettetemi di digitare il nome utente e la password corretti.

242
00:19:11,160 --> 00:19:19,170
Quindi dirò username admin, la password è la password P-A-S-W-O-R-D.

243
00:19:19,170 --> 00:19:22,650
Così potete vedere che, questa è esattamente la password che abbiamo qui.

244
00:19:22,650 --> 00:19:26,800
Quindi, una volta digitato il nome utente e la password, diranno Richiesta di aggiornamento.

245
00:19:26,800 --> 00:19:30,980
Quindi, quando clicco su Richiesta di aggiornamento, vedrai che immediatamente nell'intestazione,

246
00:19:32,130 --> 00:19:35,340
vedrai che

247
00:19:35,340 --> 00:19:40,770
c'è questo campo qui che è stato aggiunto qui dicendo autorizzazione.

248
00:19:40,770 --> 00:19:45,080
E poi, vedrai che cosa questa seconda parte, il valore che puoi prendere.

249
00:19:45,080 --> 00:19:49,480
Dice di base e uno spazio, e poi questa particolare stringa.

250
00:19:49,480 --> 00:19:55,040
Quindi, se controlli questa particolare stringa qui, questa sarà la

251
00:19:55,040 --> 00:20:01,219
stringa esatta che vedrai nell'intestazione del messaggio di richiesta di successo.

252
00:20:01,219 --> 00:20:03,544
Notate cosa dice questa stringa.

253
00:20:03,544 --> 00:20:09,309
Si dice YWR qualcosa, e poi termina con una Q uguale a.

254
00:20:09,309 --> 00:20:14,285
Andando al nostro terminale, vedi che la richiesta di successo

255
00:20:14,285 --> 00:20:18,276
conteneva esattamente quella stringa qui.

256
00:20:18,276 --> 00:20:24,250
Dice YWR e poi termina con Q uguale a lì.

257
00:20:24,250 --> 00:20:28,400
Quindi digitando le informazioni nell'autorizzazione e facendo clic sulla

258
00:20:28,400 --> 00:20:34,240
richiesta di aggiornamento, queste informazioni vengono aggiunte nelle intestazioni di autorizzazione.

259
00:20:34,240 --> 00:20:36,410
Quindi ora questa è una richiesta get,

260
00:20:37,410 --> 00:20:42,020
non ho bisogno del tipo di contenuto lì perché non contiene alcun corpo.

261
00:20:42,020 --> 00:20:46,106
Quindi, ora che l'autorizzazione è stata inclusa,

262
00:20:46,106 --> 00:20:51,263
inviamo la richiesta ora correttamente e poi vedrai che

263
00:20:51,263 --> 00:20:57,990
la risposta proveniente dal sito server conterrà il file di indice come ti aspetti.

264
00:20:57,990 --> 00:21:02,524
Ora, lasciatemi cancellare l'autorizzazione.

265
00:21:02,524 --> 00:21:07,351
Ora questo è il motivo per cui Postmap mi aiuta a controllare queste cose molto più

266
00:21:07,351 --> 00:21:11,662
facilmente, posso cancellare l'autorizzazione e quindi inviare la richiesta.

267
00:21:11,662 --> 00:21:14,947
E conterrà ancora questa autorizzazione,

268
00:21:14,947 --> 00:21:18,570
perché l'ho digitato nel campo di autorizzazione.

269
00:21:18,570 --> 00:21:23,380
Quindi fammi cancellare l'autorizzazione da lì, e poi inviare la richiesta qui.

270
00:21:23,380 --> 00:21:26,000
E poi dice che non sei autenticato.

271
00:21:26,000 --> 00:21:30,230
Allo stesso modo, se invio la richiesta ai piatti.

272
00:21:30,230 --> 00:21:32,000
In precedenza, questo funzionava bene, ma

273
00:21:32,000 --> 00:21:37,750
ora si vede che ci è impedito di accedere anche all'endpoint /piatti.

274
00:21:37,750 --> 00:21:41,400
E la stessa cosa con tutti gli altri endpoint APR resto anche.

275
00:21:41,400 --> 00:21:47,360
Non sarà consentito l'accesso, perché il middleware di autorizzazione viene prima di

276
00:21:47,360 --> 00:21:50,600
ottenere l'accesso a uno di questi endpoint

277
00:21:50,600 --> 00:21:56,070
nell'elenco di middleware per il server express.

278
00:21:56,070 --> 00:21:59,945
Quindi ora se ora includo l'autorizzazione,

279
00:22:04,774 --> 00:22:10,277
E poi aggiorno la mia richiesta e poi invio la richiesta al server,

280
00:22:10,277 --> 00:22:12,845
allora il server risponderà.

281
00:22:12,845 --> 00:22:17,412
Ora ovviamente in questo momento il mio database è vuoto,

282
00:22:17,412 --> 00:22:20,752
quindi sta rispondendo con un array vuoto lì.

283
00:22:20,752 --> 00:22:24,109
Ma ora la richiesta è andata avanti con successo e

284
00:22:24,109 --> 00:22:28,004
sono in grado di recuperare le informazioni dal calzino del server.

285
00:22:28,004 --> 00:22:32,186
Quindi questa è una rapida dimostrazione di

286
00:22:32,186 --> 00:22:37,724
autorizzazione di base nella nostra applicazione APR riposo espresso.

287
00:22:37,724 --> 00:22:40,730
Con questo, completiamo questo esercizio.

288
00:22:40,730 --> 00:22:42,236
Questo è un buon momento per

289
00:22:42,236 --> 00:22:46,846
voi per fare un commento get con il messaggio di autenticazione di base.

290
00:22:46,846 --> 00:22:50,116
[ MUSIC]