[MUSICA]
In questo esercizio, esamineremo l'uso delle sessioni Express.
Configureremo il middleware delle sessioni express e
quindi il middleware dell'archivio file express-sessions.
E poi impostare la nostra applicazione per utilizzare le sessioni express piuttosto che
utilizzare i loro cookie di assegnazione come abbiamo fatto nell'esercizio precedente.
Vedremo anche come le informazioni di sessione stessa tracciati sotto
lato server.
Per iniziare con questo esercizio,
andare alla cartella ConfusionServer nel terminale o nella
finestra di comando e quindi installare express-session.
Quindi, per farlo, digitare npm install express-session
e quindi archivio file di sessione.
Perché useremo l'archivio file per persistere le informazioni sulla sessione.
Quindi installerà il session-store nel modulo qui per lo scopo.
Una volta installati entrambi, e come puoi vedere adesso,
sto usando express-session 1.15.6 e
session-file-storage 1.2.0 in questo corso.
Una volta installati entrambi, andiamo alla nostra applicazione ConfusionServer.
Andando all'applicazione ConfusionServer
, qui, cerchiamo ora di importare la sessione express.
Quindi diremo, var sessione richiede, sessione express.
E var FileStore = richiede
sessione -file-store.
E questo prende la sessione come suoi parametri,
questa sessione si riferisce a questo che abbiamo appena importato qui.
Ora, una volta fatto questo, allora entriamo nel nostro codice qui,
e poi vedremo invece di CookieParser.
Quindi ho intenzione di commentare CookieParser da lì, e
poi userò ora, Sessione qui.
E poi, imposteremo la sessione con
le varie opzioni, diremo nome,
sto solo usando un ID sessione casuale qui, e poi, Segreto.
Userò il segreto che ho usato prima.
Quindi fammi copiare quella stringa lì.
E poi, Salva,
On, Uninitialized save false.
Salvare di nuovo, falso.
Le tesi non renderanno molto diverse dalla semplice applicazione che stiamo scrivendo in
questo momento.
E poi diremo negozio è nuovo,
FileStore che abbiamo dichiarato in precedenza.
Questo è tutto.
Ora il mio middleware di sessione è tutto impostato per fare uso della nostra applicazione.
Ora, come ho detto, questo middleware di sessione aggiungerà questo
req.session al messaggio di richiesta,
quindi farò un registro della console di req.session solo per vedere cosa contiene.
E poi, qui sotto, invece di controllare l'utente req assegna cookie,
ho intenzione di controllare req.session.user qui.
E poi, vedremo l'intestazione di autorizzazione, e così via.
Tutta questa parte rimarrà esattamente la stessa di prima.
Ma qui, invece di impostare il cookie, quello che imposterò qui è,
invece di impostare il cookie, quindi invece di usare res.cookie qui,
diremo, req.session.user = a 'admin'.
Quindi stiamo per impostare la proprietà utente sulla
req-session per admin qui, e quindi procedere avanti da questo punto.
Quindi il resto del codice qui rimarrà esattamente lo stesso di prima,
non ci sarà alcun cambiamento qui.
E accetta proprio lì, stiamo andando a controllare req.session,
utente, è amministratore o no?
Quindi questo e' l'assegno che faremo qui.
Questo è tutto.
Queste sono le modifiche che dobbiamo fare alla nostra
applicazione per utilizzare le sessioni al posto dei cookie firmati.
Salviamo le modifiche e poi guardiamo questa versione del nostro server espresso.
Tornando al nostro terminale o finestra di comando, riavviamo il nostro
server, se sei server è stato in esecuzione, basta fermarlo e riavviare il server.
E poi una volta che il server è in funzione,
andremo dal postino e lo faremo se lo richiedi.
Andando al postino, lasciami sgombrare tutte queste cose,
cancelleremo le intestazioni, cancelleremo l'autorizzazione.
E poi andrò ai cookie, e
cancellerò questo cookie utente, perché quel cookie non è più valido.
E poi, mandiamo una richiesta get a, i piatti locali ospitanti.
E poi, come ci aspettiamo, torna dicendo: Tu non sei autenticato.
Ora, quindi cerchiamo di autenticarci usando l'autenticazione di base.
Quindi diremo, amministratore, Password.
E poi aggiorneremo la richiesta e
poi invieremo una richiesta GET allo stesso punto.
E poi, otteniamo la risposta dal nostro lato server.
Ora, nota che nelle intestazioni, ora vedrai di nuovo che ha detto cookie qui.
Ora questo è stato causato dal negozio di sessioni qui.
E, quando guardi i cookie, vedi che c'è stato un altro cookie che
è impostato qui e il nome è session-id.
Quindi questo è il nome che diamo per la nostra sessione lì, quindi
questo è l'ID di sessione che stiamo usando qui.
E se fai clic sui cookie, noterai che session-id è proprio lì.
E poi, questi sono i dettagli di ciò che c'è dentro quel biscotto.
Quindi puoi notare un sacco di informazioni e la data di scadenza per
il cookie e così via.
Questo potrebbe non avere molto senso per voi in questo momento, ma esiste lì.
Ora, fammi cancellare l'autorizzazione.
E anche dall'intestazione, lasciami rimuovere questa intestazione di autorizzazione.
E poi invierò di nuovo la richiesta e
noterai che questa richiesta verrà servita correttamente anche ora.
A causa del fatto che questo cookie esiste,
e questo cookie sarà incluso nella richiesta in uscita.
E il lato server mapperà questo alla sessione appropriata.
E così, il server si rende conto che questo è un utente autorizzato e
invierà indietro la risposta.
Ora andando alla nostra console server nel terminale o nella finestra di comando,
si nota che il, Informazioni stampate sul lato server.
Vedete, vi ricordate che stavo registrando la req.session qui.
Quindi questo è dove il req.session contiene inizialmente.
E poi dice, GET piatti per uno non valido.
A questo punto, si sta inviando l'intestazione di autorizzazione appropriata lì.
E così la tua richiesta di successo correttamente.
Ma la nota, ciò che viene messo fuori nella sessione nella prossima richiesta.
Ricordiamo che ho rimosso l'intestazione delle autorizzazioni e quindi inviato la richiesta.
Ma nota cosa contiene il rec.session qui.
In particolare si noti
che, ora contiene questo campo utente con l'amministratore in atto lì.
Quindi questo è ciò che il server riceve dal nostro lato client nel cookie.
E il cookie stesso contiene tutte queste informazioni qui.
E così, il server riconosce che si tratta di un utente valido e
quindi restituisce i risultati da quel lato server.
Andando al postino,
diamo di nuovo un'occhiata ai dettagli di ciò che è all'interno del cookie.
Quindi, quando apri il cookie qui,
vedi di nuovo tutti i dettagli delle informazioni all'interno del cookie qui.
Se guardi il tuo editor, ora vedi che nel tuo editor
c'è una nuova cartella qui chiamata sessioni che è stata creata qui.
Questo perché stavamo usando il file store per
tenere traccia di tutte le nostre sessioni.
Ora questo è uno dei motivi per cui utilizzo l'archivio file in modo da poterti mostrare ciò che
è memorizzato in un file di sessione sul mio lato server.
Quindi se apri questo file qui con il nome lungo lì,
vedresti dentro lì, le informazioni sulla sessione vengono memorizzate qui.
Quindi, se si sfogliano queste informazioni di sessione, notare in particolare,
questo campo iniziale che si trova sul lato server.
Quindi questo è dove il tuo server sta monitorando tutte queste informazioni sul lato server.
Ora questo cookie stesso è riconosciuto dal server,
poiché il client include questo cookie nella richiesta in arrivo.
Ora è in grado di andare nell'archivio delle sessioni e quindi recuperare le informazioni,
e quindi caricarlo su req.sessions.
E quindi, la req.session contiene queste particolari informazioni
che il mio server sta usando per controllare incrociatamente per assicurarsi che
il mio client sia un client autorizzato.
Si tratta di sessioni.
Con questo, completiamo questo esercizio.
In questo esercizio,
abbiamo visto come possiamo impostare la nostra applicazione espressa per utilizzare le sessioni.
E abbiamo anche visto come stiamo usando il file store per tenere traccia delle nostre sessioni.
Questo è un buon momento per fare un commento GET con
il messaggio espresso sessioni prima parte.
[ MUSIC]