Bienvenue à la dernière tranche de ce code d'authentification tout ce que nous avons à faire est d'ajouter dans la fonctionnalité de déconnexion et ensuite nous allons ajouter dans un middleware appelé est connecté pour vérifier si l'utilisateur est verrouillé Dans ou non.
Nous allons donc en arriver à temps.
Commençons par vous déconnecter afin de vous déconnecter est beaucoup plus simple que de vous connecter ou de vous inscrire.
Nous n'avons pas besoin d'avoir deux routes.
Nous n'avons pas besoin d'un formulaire.
Tout ce que nous voulons est un simple lien et lorsque nous cliquons sur ce lien, il doit se déconnecter ou se déconnecter de l'utilisateur actuel.
Commençons par le lien.
Je vais aller à la page d'accueil pour commencer une annonce dans un lien à la coupure déconnexion qui n'existe pas et nous allons simplement dire se déconnecter.
Et ajoutons également dans un lien pour ouvrir une session puisque nous n'avons pas encore fait cela.
Et maintenant, copions ceci et mettons-le sur tous les modèles juste pour que nous ayons ces trois liens sur chaque page.
D'ACCORD.
Maintenant, revenons à notre adresse et nous devons gérer l'itinéraire de déconnexion.
Donc, nous avons besoin d'ajouter dans et après que l'obtenir slash se déconnecter et nous pouvons commencer agréable et simple en envoyant quelque chose en arrière.
RAZ Et.
D'ACCORD.
Je vais vous déconnecter.
Pas encore et économisez.
Et nous devrions voir ceci quand nous cliquons sur ce lien.
Commençons notre serveur.
Essayons de nous déconnecter maintenant et rafraîchir la page et il n'a pas d'importance si depuis longtemps ou non, nous cliquons sur déconnexion.
Nous obtenons cette réponse qui est ce que nous voulons.
Maintenant, ce que nous devons faire est effectivement de connecter l'utilisateur qui est vraiment simple à l'aide de Passeport.
C'est une simple demande de ligne qui se déconnecte c'est tout ce que nous devons faire.
Et rappelez-vous quand on verrouille quelqu'un, on ne change rien dans la base de données.
Il n'y a pas de transaction.
Ce qui se passe, c'est que le passeport détruit toutes les données utilisateur dans la session.
Il n'est plus de suivi des données de cet utilisateur dans la session de demande à la demande.
Donc, si nous économisons et puis nous voulons aussi quelque chose à arriver à la fin comme une redirection.
Alors redirigeons-nous vers la page d'accueil.
Cette redirection vers slash.
Une fois que vous avez été déconnecté OK redémarrez le serveur et donnez-lui un coup de feu.
Donc, je vais rafraîchir je vais commencer par vous connecter et je vais me connecter en tant que Colt avec le compte que j'ai créé avec mon mot de passe comme mot de passe.
Je me connecte à la page secrète.
Maintenant, nous allons cliquer sur se déconnecter et il le ramène à la page d'accueil et c'est tout.
Alors log, c'est assez simple.
Nous n'avons besoin d'aucun des formulaires.
Il s'agit d'un seul tronçon de tronçonnage de déconnexion et tout ce que nous faisons à chaque fois est la demande de déconnexion.
Et qui prend soin de tout pour nous.
Cela vient du passeport dans l'unité où nous créons notre journal à partir de zéro.
Nous allons réellement écrire la méthode se déconnecter.
Nous allons écrire authentifier.
Nous allons écrire le registre.
Mais pour le moment passeport rend super facile pour nous.
Nous avons un problème qui est que même si je suis déconnecté je viens de quitter pour fermer la session.
Je peux encore aller à slash secret.
Rien ne m'empêche d'y arriver.
Donc, notre code nous envoie maintenant à slash secret lorsque nous nous inscrivons.
Et quand nous voudrions encore mais je peux encore y aller même si je ne suis pas signé dedans.
Déconnectez-vous et je peux toujours aller à slash secret pour corriger cela.
Nous devons ajouter dans un middleware dans ce que nous voulons faire est sur cette voie secrète avant que nous fassions quoi que ce soit.
Nous allons vérifier si l'utilisateur est connecté ou non si l'utilisateur est connecté.
Puis rendra ce modèle si l'utilisateur n'est pas connecté, puis les rediriger vers l'ouverture de session slash.
Et la façon dont nous faisons cela est en écrivant un middleware.
Donc, nous allons définir une fonction en bas ici et cette fonction va être appelée est connecté.
Et il faut trois paramètres demande de réponse et la prochaine.
Et ceci est standard pour la demande middleware se réfère à l'objet de demande.
La réponse est l'objet de réponse.
Et ensuite est en fait la prochaine chose qui doit être appelé.
Et nous n'avons pas à mettre tout cela en place juste en l'ajoutant comme un middleware que nous allons faire dans un instant.
Express prend soin de lui et il sait quelle fonction appeler ensuite.
Mais nous allons commencer par définir la fonctionnalité ici.
Donc, est connecté, nous allons vérifier si une demande est authentifié qui est quelque chose qui vient avec le passeport ainsi assurez-vous que nous orthographié ce droit.
Est authentifié.
Ensuite, nous allons revenir ensuite ce qui est un peu bizarre.
Et puis je reviendrai là-dessus.
Sinon ce que nous allons faire et nous n'avons pas besoin d'un autre parce que nous revenons ici.
Donc, ce que nous allons faire est de redstart redirection vers le journal en forme de barre oblique de connexion et ensuite nous allons ajouter cela comme un middleware est connecté à notre itinéraire secret slash qui est ici.
Et c'est vraiment simple, il suffit d'ajouter est connecté ici.
Et puis une virgule.
Donc, ce que cela va faire, c'est quand une demande vient dans une requête GET pour slash secret, il va exécuter ce avant qu'il ne fait autre chose.
Il va exécuter est connecté dans lequel elle va faire cela.
Il va vérifier est la demande authentifiée si elle est le retour suivant et exécuter ensuite.
C'est ce que les parenthèses ici sont.
Et ensuite, il va juste se référer à ce droit ici.
Donc, avant de rendre secret, nous voulons vérifier si les utilisateurs se sont connectés.
Encore une fois, c'est ce que nous faisons.
Si l'utilisateur s'est connecté.
Fondamentalement continuer.
Déplacez-vous bien.
Sinon, si l'utilisateur n'est pas authentifié alors nous avons un problème et nous allons vous rediriger vers le slash log in.
Et cet autre code ne fonctionnera jamais.
Donc, si nous redirigons à l'intérieur de est connecté, nous avons terminé.
Et cela ne se produit pas.
OK, nous allons sauvegarder redémarrer le serveur.
Assurez-vous que nous n'avons aucune erreur de syntaxe.
Revenons en arrière et commençons sur la page racine.
Assurez-vous que je ne suis pas connecté et maintenant je vais essayer d'aller à slash secret et cela me prend pour slash se connecter automatiquement.
Regarde ça.
Maintenant, c'est loggin colt avec mon mot de passe.
Vous avez appelé le mot de passe.
Maintenant je peux aller à la page secrète.
Maintenant, nous allons revenir à la racine et essayer d'aller au secret de nouveau et cela fonctionne parce que je suis connecté afin que je puisse aller et venir.
Je peux aller sur les routes que je veux signer et puis revenir au secret.
Mais alors, dès que je me déconnecte et que j'essaie de revenir au secret, ça ne fonctionne plus.
Nous allons simplement vérifier que ou signer fonctionne.
Faisons un nouveau compte appelé Tator et le mot de passe sera également mot de passe et nous allons soumettre qui nous fait un nouveau compte.
Je peux maintenant visiter le secret et puis je peux me déconnecter.
Et cela détruit la session et je ne peux plus aller au secret.
D'accord.
Nous avons donc couvert beaucoup dans cette série de cinq parties différentes pour créer cette authentification utilisateur.
Et c'est même en utilisant ces outils que j'ai dit nous aiderait.
C'est certainement un peu une entreprise, mais il est évidemment la peine.
La plupart des applications web bénéficient vraiment d'avoir en parce que comme nous allons voir et Yelp camp de notre prochaine vidéo, nous serons en mesure d'ajouter le login.
Et ce n'est pas seulement pour mettre des choses derrière un mur loggin, mais nous pouvons effectivement associer des données avec un utilisateur.
En ce moment, nous avons seulement la page des secrets cachée, sauf si vous êtes connecté.
Mais aucun camp n'associe effectivement des commentaires spécifiques à un utilisateur afin que nous puissions voir qui a exactement fait un commentaire.
Donc, avant de signer ici, nous allons revenir en arrière et juste faire un rapide récapitulatif de la partie la plus importante qui est notre middleware est donc connecté est une fonction que nous avons définie.
Et nous pouvons définir autant de middleware que nous voulons et ils prennent tous ces trois paramètres de la demande de la réponse et la fonction suivante.
Et puis, si les choses vont bien si nous voulons passer au prochain middleware, il suffit d'appeler ensuite.
Juste comme ça.
Et dans notre cas, si les choses ne sont pas bien si la demande n'est pas authentifié qui retourne faux alors nous court-circuitons et rediriger à la barre oblique comme elle.
D'accord.
J'espère que vous apprécierez l'apprentissage de l'authentification des utilisateurs.