Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bouton qui "POST"

image cliquable qui envoie une requête POST

15 juin 2021 à 8:18:23

Bien le bonjour,

la question est un peu bête, mais je voudrais faire un bouton de déconnexion, mais pour des raisons pratiques, j'aimerais que la requête envoyée par ce bouton ( qui sera probablement une image plutôt qu'un input type button ) soit de type POST.

Est-ce simplement possible ? ( ou va-t-il falloir que je m'arrange autrement pour ranger un peu mon code ^^ )

  • Partager sur Facebook
  • Partager sur Twitter
15 juin 2021 à 10:01:38

ben,... je ne vois pas où est le soucis.

Tu as un bout de code à montrer?

  • Partager sur Facebook
  • Partager sur Twitter
15 juin 2021 à 10:27:40

Non, justement ^^

Bon, j'essaye de m'expliquer un peu mieux.
Habituellement, soit je mettais l'image dans un lien, soit je lui donnais un attribut "onclick". Mais ça, ça fait des requêtes de type GET, et ça pourrait très bien fonctionner. Simplement, dans l'organisation de mon code côté serveur, j'aimerais que le traitement de la requête de déconnection se situe au même endroit que le traitement des requêtes de connexion. Alors, j'aurais aussi un bouton de déconnection dans le corps de la page qui permet de se connecter, de créer un nouveau compte, de le modifier et de le supprimer. Ce bouton-là enverra d'ailleurs une requête POST.
Mais là je bosse sur l'en-tête de mes pages, qui contiendra une petite partie où apparaîtra le nom de l'utilisateur si il est connecté, et donc juste à côte une petite icône permettant de se déconnecter rapidement ( sans avoir à aller sur la page de connexion/création de compte ).

Pour comparer avec ce qui se fait sur d'autres site, ça se situe très souvent en haut à droite. Ici, si je clique sur le petit rond avec mes initiales, ça ouvre un menu déroulant, et tout en bas de ce menu il y a le lien de déconnection. Celui-ci envoie une requête GET ( https://openclassrooms.com/logout?_csrf_token=*** ).

En revanche, sur facebook, le lien de déconnection doit être de type POST, parce qu'on ne voit pas de querystring. ( https://facebook.com/me ).

J'imagine qu'il existe une solution, actuellement je suis en train de fouiller du côté de XMLHttpRequest.

  • Partager sur Facebook
  • Partager sur Twitter
15 juin 2021 à 10:37:26

Salut,

Sans même parler de code source, je vais balancer des idées comme ça.

D'un côté tu peux faire un <form> de type POST, qui va faire ta déconnexion. Dans des input tu pourras du coup embarquer des données du user en cours.

Sinon, tu peux aussi tout simplement faire un bouton qui redirigera vers un page style /logout, et dans cette page tu as tout le code du style "Si connecté, alors vérifie les infos user, et déconnecte le, sinon redirige le vers /login".

Mais bien sûr ça dépend de comment est structuré ton code, je donne juste des pistes, mais ça m'a pas l'air bien complexe comme idée.

  • Partager sur Facebook
  • Partager sur Twitter
15 juin 2021 à 11:31:38

Le problème du formulaire, c'est la mise en page, l'élément <form> est du type block, et j'arrive pas à bidouiller le CSS pour éviter le retour à la ligne. Donc oui, créer une route /logout doit être le plus simple.

Pardon de m'exprimer assez maladroitement, je ne fait pas vraiment partie du monde de la programmation ^^
En fait, comme je commence tout juste à bosser avec express, j'ai pas forcément les bonnes pratiques, et ça rend compliqué le fait de poster du code, comme c'est réparti dans plusieurs fichiers.
Mais comme tu le dis, il y a plusieurs solution à ce tout petit problème, j'essaye de trouver celle qui est la plus pratique.

Merci en tout cas de votre aide.

( quelques bidouilles plus tard )

Râaah!
L'inconvénient aussi du formulaire, c'est que j'arrive pas à le faire pointer sur l'accueil.
Bon, je suis sur un site Express.js en local.

Si je met action="/", je me prend une 404.

Bon, après c'est pas déconnant de se retrouver sur la page de connexion quand on vient de se déconnecter, mais bon :(
Moi je trouve ça pas top de se retrouver sur la page de connexion quand on se déconnecte depuis l'accueil.
D'ailleurs, s'agissant d'un bouton qui se trouve dans l'en-tête commun à toutes les pages, faudrait que je trouve moyen que la déconnection revoie sur la page depuis laquelle on s'est déconnecté.

Enfin bon, c'est pas mon urgence, il faut que je bosse sur l'intégration d'une base de données et sur les opérations CRUD des comptes utilisateurs.

-
Edité par LucasWerquin 15 juin 2021 à 18:26:07

  • Partager sur Facebook
  • Partager sur Twitter