1
00:00:00,000 --> 00:00:04,514
[MUSICA]

2
00:00:04,514 --> 00:00:09,803
In questo esercizio, esamineremo l'uso delle sessioni Express.

3
00:00:09,803 --> 00:00:13,115
Configureremo il middleware delle sessioni express e

4
00:00:13,115 --> 00:00:16,356
quindi il middleware dell'archivio file express-sessions.

5
00:00:16,356 --> 00:00:21,315
E poi impostare la nostra applicazione per utilizzare le sessioni express piuttosto che

6
00:00:21,315 --> 00:00:25,885
utilizzare i loro cookie di assegnazione come abbiamo fatto nell'esercizio precedente.

7
00:00:25,885 --> 00:00:30,870
Vedremo anche come le informazioni di sessione stessa tracciati sotto

8
00:00:30,870 --> 00:00:32,145
lato server.

9
00:00:33,750 --> 00:00:36,556
Per iniziare con questo esercizio,

10
00:00:36,556 --> 00:00:40,672
andare alla cartella ConfusionServer nel terminale o nella

11
00:00:40,672 --> 00:00:45,643
finestra di comando e quindi installare express-session.

12
00:00:45,643 --> 00:00:52,672
Quindi, per farlo, digitare npm install express-session

13
00:00:52,672 --> 00:00:56,678
e quindi archivio file di sessione.

14
00:00:58,792 --> 00:01:03,320
Perché useremo l'archivio file per persistere le informazioni sulla sessione.

15
00:01:03,320 --> 00:01:08,623
Quindi installerà il session-store nel modulo qui per lo scopo.

16
00:01:08,623 --> 00:01:13,399
Una volta installati entrambi, e come puoi vedere adesso,

17
00:01:13,399 --> 00:01:17,008
sto usando express-session 1.15.6 e

18
00:01:17,008 --> 00:01:21,430
session-file-storage 1.2.0 in questo corso.

19
00:01:21,430 --> 00:01:26,397
Una volta installati entrambi, andiamo alla nostra applicazione ConfusionServer.

20
00:01:27,510 --> 00:01:31,868
Andando all'applicazione ConfusionServer

21
00:01:31,868 --> 00:01:36,921
, qui, cerchiamo ora di importare la sessione express.

22
00:01:36,921 --> 00:01:44,414
Quindi diremo, var sessione richiede, sessione express.

23
00:01:46,639 --> 00:01:53,560
E var FileStore = richiede

24
00:01:53,560 --> 00:01:59,908
sessione -file-store.

25
00:02:02,812 --> 00:02:07,064
E questo prende la sessione come suoi parametri,

26
00:02:07,064 --> 00:02:13,830
questa sessione si riferisce a questo che abbiamo appena importato qui.

27
00:02:13,830 --> 00:02:18,970
Ora, una volta fatto questo, allora entriamo nel nostro codice qui,

28
00:02:18,970 --> 00:02:22,490
e poi vedremo invece di CookieParser.

29
00:02:22,490 --> 00:02:26,598
Quindi ho intenzione di commentare CookieParser da lì, e

30
00:02:26,598 --> 00:02:33,401
poi userò ora, Sessione qui.

31
00:02:36,481 --> 00:02:41,823
E poi, imposteremo la sessione con

32
00:02:41,823 --> 00:02:47,175
le varie opzioni, diremo nome,

33
00:02:50,402 --> 00:02:56,909
sto solo usando un ID sessione casuale qui, e poi, Segreto.

34
00:02:58,871 --> 00:03:02,880
Userò il segreto che ho usato prima.

35
00:03:02,880 --> 00:03:06,493
Quindi fammi copiare quella stringa lì.

36
00:03:06,493 --> 00:03:11,981
E poi, Salva,

37
00:03:13,422 --> 00:03:21,119
On, Uninitialized save false.

38
00:03:27,180 --> 00:03:28,390
Salvare di nuovo, falso.

39
00:03:28,390 --> 00:03:32,198
Le tesi non renderanno molto diverse dalla semplice applicazione che stiamo scrivendo in

40
00:03:32,198 --> 00:03:33,330
questo momento.

41
00:03:33,330 --> 00:03:37,604
E poi diremo negozio è nuovo,

42
00:03:39,643 --> 00:03:42,497
FileStore che abbiamo dichiarato in precedenza.

43
00:03:45,441 --> 00:03:46,330
Questo è tutto.

44
00:03:46,330 --> 00:03:53,330
Ora il mio middleware di sessione è tutto impostato per fare uso della nostra applicazione.

45
00:03:53,330 --> 00:03:58,295
Ora, come ho detto, questo middleware di sessione aggiungerà questo

46
00:03:58,295 --> 00:04:03,560
req.session al messaggio di richiesta,

47
00:04:03,560 --> 00:04:08,630
quindi farò un registro della console di req.session solo per vedere cosa contiene.

48
00:04:08,630 --> 00:04:13,910
E poi, qui sotto, invece di controllare l'utente req assegna cookie,

49
00:04:13,910 --> 00:04:18,370
ho intenzione di controllare req.session.user qui.

50
00:04:19,390 --> 00:04:23,620
E poi, vedremo l'intestazione di autorizzazione, e così via.

51
00:04:23,620 --> 00:04:27,460
Tutta questa parte rimarrà esattamente la stessa di prima.

52
00:04:27,460 --> 00:04:32,760
Ma qui, invece di impostare il cookie, quello che imposterò qui è,

53
00:04:32,760 --> 00:04:38,052
invece di impostare il cookie, quindi invece di usare res.cookie qui,

54
00:04:38,052 --> 00:04:45,470
diremo, req.session.user = a 'admin'.

55
00:04:45,470 --> 00:04:50,030
Quindi stiamo per impostare la proprietà utente sulla

56
00:04:50,030 --> 00:04:55,510
req-session per admin qui, e quindi procedere avanti da questo punto.

57
00:04:55,510 --> 00:04:59,090
Quindi il resto del codice qui rimarrà esattamente lo stesso di prima,

58
00:04:59,090 --> 00:05:01,030
non ci sarà alcun cambiamento qui.

59
00:05:01,030 --> 00:05:06,240
E accetta proprio lì, stiamo andando a controllare req.session,

60
00:05:09,462 --> 00:05:11,770
utente, è amministratore o no?

61
00:05:11,770 --> 00:05:14,340
Quindi questo e' l'assegno che faremo qui.

62
00:05:14,340 --> 00:05:15,360
Questo è tutto.

63
00:05:15,360 --> 00:05:18,820
Queste sono le modifiche che dobbiamo fare alla nostra

64
00:05:18,820 --> 00:05:23,850
applicazione per utilizzare le sessioni al posto dei cookie firmati.

65
00:05:23,850 --> 00:05:30,040
Salviamo le modifiche e poi guardiamo questa versione del nostro server espresso.

66
00:05:30,040 --> 00:05:34,480
Tornando al nostro terminale o finestra di comando, riavviamo il nostro

67
00:05:35,600 --> 00:05:39,860
server, se sei server è stato in esecuzione, basta fermarlo e riavviare il server.

68
00:05:40,870 --> 00:05:42,730
E poi una volta che il server è in funzione,

69
00:05:42,730 --> 00:05:48,600
andremo dal postino e lo faremo se lo richiedi.

70
00:05:48,600 --> 00:05:56,350
Andando al postino, lasciami sgombrare tutte queste cose,

71
00:05:56,350 --> 00:06:01,970
cancelleremo le intestazioni, cancelleremo l'autorizzazione.

72
00:06:01,970 --> 00:06:03,630
E poi andrò ai cookie, e

73
00:06:03,630 --> 00:06:08,540
cancellerò questo cookie utente, perché quel cookie non è più valido.

74
00:06:08,540 --> 00:06:16,030
E poi, mandiamo una richiesta get a, i piatti locali ospitanti.

75
00:06:16,030 --> 00:06:21,160
E poi, come ci aspettiamo, torna dicendo: Tu non sei autenticato.

76
00:06:21,160 --> 00:06:24,520
Ora, quindi cerchiamo di autenticarci usando l'autenticazione di base.

77
00:06:24,520 --> 00:06:29,483
Quindi diremo, amministratore, Password.

78
00:06:29,483 --> 00:06:32,223
E poi aggiorneremo la richiesta e

79
00:06:32,223 --> 00:06:35,740
poi invieremo una richiesta GET allo stesso punto.

80
00:06:35,740 --> 00:06:39,400
E poi, otteniamo la risposta dal nostro lato server.

81
00:06:39,400 --> 00:06:46,000
Ora, nota che nelle intestazioni, ora vedrai di nuovo che ha detto cookie qui.

82
00:06:46,000 --> 00:06:52,500
Ora questo è stato causato dal negozio di sessioni qui.

83
00:06:52,500 --> 00:06:57,492
E, quando guardi i cookie, vedi che c'è stato un altro cookie che

84
00:06:57,492 --> 00:07:02,570
è impostato qui e il nome è session-id.

85
00:07:02,570 --> 00:07:06,398
Quindi questo è il nome che diamo per la nostra sessione lì, quindi

86
00:07:06,398 --> 00:07:09,744
questo è l'ID di sessione che stiamo usando qui.

87
00:07:11,172 --> 00:07:16,880
E se fai clic sui cookie, noterai che session-id è proprio lì.

88
00:07:16,880 --> 00:07:22,102
E poi, questi sono i dettagli di ciò che c'è dentro quel biscotto.

89
00:07:22,102 --> 00:07:26,816
Quindi puoi notare un sacco di informazioni e la data di scadenza per

90
00:07:26,816 --> 00:07:28,940
il cookie e così via.

91
00:07:28,940 --> 00:07:33,703
Questo potrebbe non avere molto senso per voi in questo momento, ma esiste lì.

92
00:07:33,703 --> 00:07:38,110
Ora, fammi cancellare l'autorizzazione.

93
00:07:38,110 --> 00:07:42,140
E anche dall'intestazione, lasciami rimuovere questa intestazione di autorizzazione.

94
00:07:42,140 --> 00:07:45,312
E poi invierò di nuovo la richiesta e

95
00:07:45,312 --> 00:07:51,094
noterai che questa richiesta verrà servita correttamente anche ora.

96
00:07:51,094 --> 00:07:54,061
A causa del fatto che questo cookie esiste,

97
00:07:54,061 --> 00:07:58,250
e questo cookie sarà incluso nella richiesta in uscita.

98
00:07:58,250 --> 00:08:01,400
E il lato server mapperà questo alla sessione appropriata.

99
00:08:02,922 --> 00:08:07,375
E così, il server si rende conto che questo è un utente autorizzato e

100
00:08:07,375 --> 00:08:10,042
invierà indietro la risposta.

101
00:08:10,042 --> 00:08:17,004
Ora andando alla nostra console server nel terminale o nella finestra di comando,

102
00:08:17,004 --> 00:08:23,080
si nota che il, Informazioni stampate sul lato server.

103
00:08:23,080 --> 00:08:27,460
Vedete, vi ricordate che stavo registrando la req.session qui.

104
00:08:27,460 --> 00:08:30,780
Quindi questo è dove il req.session contiene inizialmente.

105
00:08:30,780 --> 00:08:36,940
E poi dice, GET piatti per uno non valido.

106
00:08:36,940 --> 00:08:43,620
A questo punto, si sta inviando l'intestazione di autorizzazione appropriata lì.

107
00:08:43,620 --> 00:08:48,365
E così la tua richiesta di successo correttamente.

108
00:08:48,365 --> 00:08:53,080
Ma la nota, ciò che viene messo fuori nella sessione nella prossima richiesta.

109
00:08:53,080 --> 00:08:58,080
Ricordiamo che ho rimosso l'intestazione delle autorizzazioni e quindi inviato la richiesta.

110
00:08:58,080 --> 00:09:00,960
Ma nota cosa contiene il rec.session qui.

111
00:09:00,960 --> 00:09:03,088
In particolare si noti

112
00:09:03,088 --> 00:09:08,129
che, ora contiene questo campo utente con l'amministratore in atto lì.

113
00:09:09,280 --> 00:09:15,120
Quindi questo è ciò che il server riceve dal nostro lato client nel cookie.

114
00:09:15,120 --> 00:09:18,690
E il cookie stesso contiene tutte queste informazioni qui.

115
00:09:18,690 --> 00:09:22,987
E così, il server riconosce che si tratta di un utente valido e

116
00:09:22,987 --> 00:09:27,249
quindi restituisce i risultati da quel lato server.

117
00:09:27,249 --> 00:09:28,337
Andando al postino,

118
00:09:28,337 --> 00:09:32,220
diamo di nuovo un'occhiata ai dettagli di ciò che è all'interno del cookie.

119
00:09:32,220 --> 00:09:34,137
Quindi, quando apri il cookie qui,

120
00:09:34,137 --> 00:09:39,103
vedi di nuovo tutti i dettagli delle informazioni all'interno del cookie qui.

121
00:09:39,103 --> 00:09:43,026
Se guardi il tuo editor, ora vedi che nel tuo editor

122
00:09:43,026 --> 00:09:48,140
c'è una nuova cartella qui chiamata sessioni che è stata creata qui.

123
00:09:48,140 --> 00:09:52,320
Questo perché stavamo usando il file store per

124
00:09:52,320 --> 00:09:54,130
tenere traccia di tutte le nostre sessioni.

125
00:09:54,130 --> 00:09:58,180
Ora questo è uno dei motivi per cui utilizzo l'archivio file in modo da poterti mostrare ciò che

126
00:09:58,180 --> 00:10:03,320
è memorizzato in un file di sessione sul mio lato server.

127
00:10:03,320 --> 00:10:08,430
Quindi se apri questo file qui con il nome lungo lì,

128
00:10:08,430 --> 00:10:13,890
vedresti dentro lì, le informazioni sulla sessione vengono memorizzate qui.

129
00:10:13,890 --> 00:10:19,460
Quindi, se si sfogliano queste informazioni di sessione, notare in particolare,

130
00:10:19,460 --> 00:10:22,880
questo campo iniziale che si trova sul lato server.

131
00:10:22,880 --> 00:10:27,930
Quindi questo è dove il tuo server sta monitorando tutte queste informazioni sul lato server.

132
00:10:27,930 --> 00:10:32,650
Ora questo cookie stesso è riconosciuto dal server,

133
00:10:32,650 --> 00:10:36,630
poiché il client include questo cookie nella richiesta in arrivo.

134
00:10:36,630 --> 00:10:41,330
Ora è in grado di andare nell'archivio delle sessioni e quindi recuperare le informazioni,

135
00:10:41,330 --> 00:10:44,870
e quindi caricarlo su req.sessions.

136
00:10:44,870 --> 00:10:49,800
E quindi, la req.session contiene queste particolari informazioni

137
00:10:49,800 --> 00:10:54,810
che il mio server sta usando per controllare incrociatamente per assicurarsi che

138
00:10:54,810 --> 00:10:57,710
il mio client sia un client autorizzato.

139
00:10:57,710 --> 00:11:00,010
Si tratta di sessioni.

140
00:11:00,010 --> 00:11:03,230
Con questo, completiamo questo esercizio.

141
00:11:03,230 --> 00:11:04,100
In questo esercizio,

142
00:11:04,100 --> 00:11:08,630
abbiamo visto come possiamo impostare la nostra applicazione espressa per utilizzare le sessioni.

143
00:11:08,630 --> 00:11:13,751
E abbiamo anche visto come stiamo usando il file store per tenere traccia delle nostre sessioni.

144
00:11:13,751 --> 00:11:18,360
Questo è un buon momento per fare un commento GET con

145
00:11:18,360 --> 00:11:22,291
il messaggio espresso sessioni prima parte.

146
00:11:22,291 --> 00:11:25,521
[ MUSIC]