[MUSIQUE]
Dans cet exercice, nous examinerons l'utilisation des sessions Express.
Nous allons configurer le middleware express-sessions,
puis le middleware de stockage de fichiers express-sessions.
Ensuite, configurez notre application pour utiliser des sessions express plutôt que d'
utiliser leurs cookies assignés comme nous l'avons fait dans l'exercice précédent.
Nous verrons également comment les informations de session elle-même suivaient sous le
côté serveur.
Pour commencer cet exercice,
accédez au dossier ConfusionServer de votre terminal ou de
la fenêtre de commande, puis installons express-session.
Donc, pour ce faire, tapez npm install express session,
puis magasin de fichiers de session.
Parce que nous allons utiliser le magasin de fichiers pour conserver les informations de session.
Donc va installer le magasin de session dans le module ici pour le but.
Une fois que les deux sont installés, et comme vous pouvez le voir en ce moment,
j'utilise express-session 1.15.6 et
session-file-storage 1.2.0 dans ce cours.
Une fois les deux installés, passons à notre application ConfusionServer.
Aller à l'application ConfusionServer,
ici, nous allons maintenant importer la session express-.
Donc, nous allons dire, session var nécessite, session express.
Et var FileStore = requièrent
la session -file-store.
Et cela prend la session comme paramètres,
cette session se référant à ceci que nous venons d'importer ici.
Maintenant, une fois que nous faisons cela, puis nous descendons dans notre code ici,
et puis nous verrons à la place du CookieParser.
Donc, je vais commenter le CookieParser à partir de là, et
puis je vais maintenant utiliser, Session ici.
Et puis, nous allons configurer la session avec
les différentes options, nous allons dire nom,
j'utilise juste un identifiant de session aléatoire ici, puis, Secret.
J' utiliserai le secret que j'ai utilisé plus tôt.
Laisse-moi juste copier cette chaîne là.
Puis, Enregistrer,
Sur, Non initialisé enregistrer false.
Resave, faux.
Les thèses ne seront pas très différentes de l'application simple que nous écrivons en
ce moment.
Et puis nous dirons que le magasin est nouveau,
FileStore que nous avons déclaré plus tôt.
C' est ça.
Maintenant, mon middleware de session est tout configuré pour utiliser notre application.
Maintenant, comme je l'ai mentionné, ce middleware de session ajoutera ce
req.session au message de demande,
donc je vais faire un journal de la console de req.session juste pour voir ce qu'il contient.
Et puis, en bas ici, au lieu de vérifier l'utilisateur req assigner des cookies,
je vais vérifier req.session.user ici.
Et puis, nous allons regarder l'en-tête d'autorisation, et ainsi de suite.
Toute cette partie restera exactement la même qu'avant.
Mais ici, au lieu de configurer le cookie, ce que je vais configurer ici est,
au lieu de configurer le cookie, donc au lieu d'utiliser res.cookie ici,
nous allons dire, req.session.user = à 'admin'.
Nous allons donc configurer la propriété utilisateur sur
la req-session à admin ici, puis procéder à partir de ce point.
Donc, le reste du code ici restera exactement le même qu'avant,
il n'y aura aucun changement ici.
Et accepter juste là, nous allons vérifier req.session,
utilisateur, est admin ou non ?
Donc c'est le chèque que nous allons faire ici.
C' est ça.
Ce sont les changements que nous devons faire à notre
application afin d'utiliser des sessions à la place des cookies signés.
Sauvegardons les modifications, puis regardons cette version de notre serveur express.
Pour revenir à notre terminal ou à la fenêtre de commande, redémarrez notre
serveur, si vous êtes serveur a été en cours d'exécution, arrêtez-le et redémarrez le serveur.
Et puis une fois que le serveur est opérationnel,
nous irons voir le facteur et le faire si vous le demandez.
Va voir le facteur, laisse-moi éclaircir toutes ces choses,
on effacera les en-têtes, on effacera l'autorisation.
Et puis j'irai aux cookies, et
je vais supprimer ce cookie d'utilisateur, parce que ce cookie n'est plus valide.
Et puis, nous allons envoyer une demande get à, Les plats locaux d'accueil.
Et puis comme nous nous y attendons, il revient en disant : Vous n'êtes pas authentifié.
Maintenant, alors nous allons nous authentifier en utilisant l'authentification de base.
Donc nous allons dire, administrateur, mot de passe.
Et puis nous allons mettre à jour la demande et
ensuite nous enverrons une requête GET au même point.
Et puis, nous recevons la réponse de notre côté serveur.
Maintenant, notez que dans les en-têtes, maintenant vous verrez à nouveau il dit cookie ici.
Maintenant, cela a été causé par le magasin de session ici.
Et, lorsque vous regardez les cookies, vous voyez qu'il y a eu un autre cookie qui
est configuré ici et que le nom est session-id.
Donc c'est le nom que nous donnons pour notre session là-bas, donc
c'est le session-id que nous utilisons ici.
Et si vous cliquez sur les cookies, vous remarquerez que session-id est juste là.
Et puis, voici les détails de ce qu'il y a à l'intérieur de ce cookie.
Ainsi, vous pouvez remarquer tout un tas d'informations et la date d'expiration
du cookie, et ainsi de suite.
Cela n'a peut-être pas beaucoup de sens pour vous en ce moment, mais il existe là.
Maintenant, laissez-moi éclaircir l'autorisation.
Et aussi à partir de l'en-tête, permettez-moi de supprimer cet en-tête d'autorisation.
Et puis je vais renvoyer la demande, et
vous remarquerez que cette demande sera correctement traitée même maintenant. En
raison du fait que ce cookie existe,
et ce cookie sera inclus dans la demande sortante.
Et le côté serveur mappera ceci à la session appropriée.
Ainsi, le serveur se rend compte qu'il s'agit d'un utilisateur autorisé et
renvoie la réponse.
Maintenant, allez à notre console de serveur dans le terminal ou la fenêtre de commande,
vous remarquez que le, Informations étant imprimées sur le côté serveur.
Alors voyez, vous vous souvenez que j'ai enregistré la req.session ici.
C' est donc là que le req.session contient initialement.
Et puis il est dit, GET plats pour un non valide.
À ce stade, vous y envoyez l'en-tête d'autorisation approprié.
Et donc votre demande de succès correctement.
Mais la note, ce qui est mis dans la session dans la prochaine demande.
Rappelons que j'ai supprimé l'en-tête des autorisations, puis envoyer la demande.
Mais notez ce que contient la rec.session ici.
En particulier, notez que,
il contient maintenant ce champ utilisateur avec l'administrateur en place là.
C' est donc ce que le serveur reçoit de notre côté client dans le cookie.
Et le cookie lui-même contient toutes ces informations ici.
Ainsi, le serveur reconnaît qu'il s'agit d'un utilisateur valide,
puis renvoie les résultats de ce côté serveur.
Aller au facteur,
regardons à nouveau les détails de ce qui est à l'intérieur du cookie.
Donc, lorsque vous ouvrez le cookie ici,
vous voyez à nouveau tous les détails de l'information à l'intérieur du cookie ici.
Si vous regardez votre éditeur, vous voyez maintenant que dans votre éditeur,
il y a un nouveau dossier ici appelé sessions qui a été créé ici.
Maintenant, c'est parce que nous utilisions le magasin de fichiers pour
garder une trace de toutes nos sessions.
Maintenant, c'est l'une des raisons pour lesquelles j'utilise le magasin de fichiers afin que je puisse vous montrer ce qui
est stocké dans un fichier de session sur mon serveur.
Donc, si vous ouvrez ce fichier ici avec le nom long là,
vous verrez à l'intérieur, les informations de session étant stockées ici.
Donc, si vous parcourez ces informations de session, notez en particulier,
ce champ initial qui est dans le côté serveur.
C' est donc là que votre serveur suit toutes ces informations sur le côté serveur.
Maintenant, ce cookie lui-même est reconnu par le serveur,
puisque le client inclut ce cookie dans la requête entrante.
Maintenant, il est capable d'aller dans le magasin de sessions, puis récupérer les informations,
puis charger cela sur le req.sessions.
Et par conséquent, le req.session contient cette information particulière
que mon serveur utilise pour vérifier que
mon client est un client autorisé.
C' est tout au sujet des sessions.
Avec cela, nous terminons cet exercice.
Dans cet exercice,
nous avons vu comment nous pouvons configurer notre application express pour utiliser des sessions.
Et nous avons également vu comment nous utilisons le magasin de fichiers pour suivre nos sessions.
C' est un bon moment pour vous de faire un commentaire GET avec
le message express sessions première partie.
[ MUSIQUE]