- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte personlive_helpToutes les questions
Gabriel Trouvé
2 mars 2023 - 02 mars 2023 à 19:49
checkConversation résolue
5 réponses
Bonsoir,Je suis revenu ce soir sur ce chapitre et je me demandais : def login(request): if request.method == "POST": # name du formulaire = username et password username = request.POST.get("username") …
00:00:00 :Dans cette vidéo, on va voir qu'on peut connecter et déconnecter un utilisateurégalement avec des fonctions en faisant quelque chose d'un peu plus manuel.Donc ici, j'ai commenté la ligne qui inclut automatiquementtoutes les URL de Django Contrib Hot URLset à la place, j'ai créé une URL login et une URL logout
00:00:19 :qui redirigent vers deux vues qui s'appellent elles aussi login et logout.Donc à l'intérieur de Views ici, vous voyez que j'ai deux fonctions,login et logout qui vont nous permettre de connecter et déconnecter l'utilisateur.
00:00:30 :Alors j'ai fait exprès les appeler ici login et logoutpuisque vous allez voir qu'en fait les fonctions qu'on va utiliser,elles s'appellent également login et logout.
00:00:38 :Donc il faut faire bien attention si vous utilisez des vues qui ont ce nomd'importer ces deux fonctions depuis Django Contrib Hotavec un autre nom pour qu'il n'y ait pas de clash entre les deux.
00:00:48 :Sinon, vous pouvez renommer bien entendu vos vues ici,par exemple mettre login view et logout viewet importer les fonctions ici telles qu'elles en tant que login et logout.
00:00:56 :Donc moi ce que j'ai fait, c'est que je les ai importées en tant que log user et logout user.On a également cette fonction authenticate que l'on va utiliserqui va nous permettre de vérifier si le nom d'utilisateur et le mot de passesont corrects dans notre base de données.
00:01:10 :Donc c'est ces trois fonctions qu'on va utiliser, authenticate, login et logout,que dans mon cas, je renomme donc log user et logout user.Et on a tout simplement une page login.html ici
00:01:20 :qui va afficher un formulaire qui est entièrement personnalisé.Donc on ne passe pas par un formulaire Django dans ce cas-ci.On a juste un champ pour le nom d'utilisateur et un champ pour le mot de passe.
00:01:30 :Donc là, le champ pour le nom d'utilisateur, je l'ai appelé username,mais c'est bien l'email qu'on va rentrer.Donc pour le texte ici, j'ai mis email.
00:01:38 :Et pour le name, qui est ce qu'on va récupérer dans notre vue, j'ai mis username.Et ensuite, on va passer ce nom d'utilisateur à notre fonction.
00:01:44 :Donc c'est tout ce que j'ai ici dans mon login.Dans ma vue également, j'ai le home qui retourne un HTTP responseet qui dit bienvenue à request.user.
00:01:52 :Donc actuellement, je suis sur la page d'accueil de mon site.Et comme je ne suis pas connecté, j'ai donc bienvenue anonymous user,puisque par défaut, si vous n'êtes pas connecté,vous êtes enregistré en tant qu'utilisateur anonyme.
00:02:03 :Donc ce qu'on va faire, c'est se rendre dans la vue de login,dans compte slash login.Et je vais donc la mettre dans ma barre d'adresse ici,slash compte slash login.
00:02:12 :Donc là, on a bien notre formulaire qui s'affiche.Et on va pouvoir essayer de se connecter.Donc quand on va se connecter, on va être redirigé vers cette vue login,où on va essayer de valider notre formulaire.
00:02:22 :Et donc ce qu'on fait, c'est que si la requête est de type post,donc si on soumet le formulaire,on récupère le nom d'utilisateur et le mot de passe.
00:02:30 :Donc pour ça, on va récupérer les informations sur notre dictionnaire post,qui sont dans username et password.Donc ça, c'est le nom des champs que j'ai mis ici,username et password.
00:02:39 :Donc il faut bien que ça corresponde.Ensuite, ce qu'on va faire, c'est qu'on va utiliserla fonction authenticate.On va lui passer en premier la requête,donc request ici, que l'on récupère en premier,paramètre ici de notre vue.
00:02:51 :Et on va lui passer tout simplement le nom d'utilisateuret le mot de passe.On récupère tout ça dans une variable que j'appelle user.Et si le nom d'utilisateur et le mot de passe correspondent,et bien cette variable user va correspondre à l'objet custom user,puisque dans ce projet ici, j'utilise un utilisateur personnalisé
00:03:08 :qui est dérivé de cette classe custom user.Donc si l'authentification est réussie,ici je récupère l'utilisateur.On va donc pouvoir faire une vérification ici.On vérifie si user is not none.
00:03:20 :Donc s'il n'est pas égal à none,ça veut dire que l'utilisateur a été correctement authentifié.On va pouvoir ensuite le connecter avec log user.Donc log user, je le rappelle,qui est la fonction login de Django contrib hot.
00:03:33 :Et cette fonction login, on va lui passer tout simplementl'objet request et notre objet utilisateur.Donc on passe ces deux objets,et automatiquement, ça va nous connecter à notre site.
00:03:42 :Ensuite, on fait tout simplement ici un redirect vers la vue home.Et dans cette vue, on va afficher,si vous vous souvenez bien, request.user.Donc si l'authentification est correctement effectuée,on va afficher le nom d'utilisateur sur la page d'accueil.
00:03:55 :Donc je vais essayer tout ça.Ici, dans le champ d'email, je vais mettre le nom de mon email.Dans le mot de passe, je mets mon mot de passe.
00:04:01 :Et si je clique sur connexion,on est bien redirigé vers la page d'accueil.Et j'affiche ici le nom d'utilisateur,qui dans le cas de ce modèle personnalisé,correspond à l'adresse mail.
00:04:11 :Donc on a correctement été authentifié.C'est-à-dire que le mot de passe correspondait au nom d'utilisateur.On va voir maintenant comment se déconnecter,et on va voir par la suite ce qui arrivesi on n'a pas les bonnes informationspour le mot de passe et le nom d'utilisateur.
00:04:24 :Donc je reviens ici dans ma vue logout cette fois-ci.Et dans logout, alors là, difficile de faire plus simple,on utilise tout simplement notre fonction logout user,qui là encore est tout simplement la fonction logoutde Django Contribhots que j'ai renommée.
00:04:38 :Donc logout user, et on lui passe la requête tout simplement.Et ça va déconnecter l'utilisateur associé à cette requête.Et ensuite, on redirige vers la vue d'accueil.
00:04:47 :Donc si je me rends sur slash compte slash logout cette fois-ci,et que j'appuie sur entrée,on est automatiquement déconnecté et redirigé vers la vue d'accueil.
00:04:56 :Et on a bien anonymous user ici, qui est maintenant affiché.Si j'essaie de me loguer de nouveau,on va essayer de voir ce que ça donne avec un mot de passe qui n'est pas valide.
00:05:03 :Donc je vais mettre hello at docstring.fret ici on va mettre un mot de passe invalide.Et je clique sur connexion,et là vous voyez qu'on a bien impossible de connecter l'utilisateur.
00:05:13 :Donc si je reviens dans mon login,ça veut dire que ici dans user,on a récupéré un objet qui n'était pas valide,donc none dans ce cas-ci,puisqu'il n'a pas réussi à trouver de match dans ma base de donnéesentre le nom d'utilisateur et le mot de passeque j'ai donné avec mon formulaire.
00:05:26 :Donc cet objet étant égal à none,on va dans le else,et on retourne ici ce HTTP response.Donc si je retourne sur ma page d'accueil,on est toujours avec le anonymous user ici.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.