J'aimerais savoir quelle méthode http dois-je utiliser lors d'une demande de connexion, et pourquoi? Puisque cette demande crée un objet (une session utilisateur) sur le serveur, je pense que cela devrait être POST, qu'en pensez-vous? Mais comme la demande de connexion doit être idempotente, elle pourrait être PUT, n'est-ce pas?
Même question pour une demande de déconnexion, dois-je utiliser la méthode DELETE?
la source
Je crois que vous pouvez traduire les méthodes LOGIN & LOGOUT en opérations CRUD de base CREATE & DELETE. Puisque vous créez une nouvelle ressource appelée SESSION et que vous la détruisez lors de la déconnexion:
Je ne ferais jamais de LOGOUT en tant que GET simplement parce que n'importe qui pourrait faire une attaque simplement en envoyant un e-mail avec une balise IMG ou un lien vers un site Web où une telle balise IMG existe. (
<img src="youtsite.com/logout" />
)PS Pendant longtemps, je me demandais comment créer une connexion / déconnexion RESTful et il s'est avéré que c'était vraiment simple, vous le faites comme je l'ai décrit: utilisez / session / endpoint avec les méthodes CREATE et DELETE et tout va bien. Vous pouvez également utiliser UPDATE si vous souhaitez mettre à jour la session d'une manière ou d'une autre ...
la source
Voici ma solution basée sur les guides et recommandations REST:
LOGIN - créer une ressource
Demande:
Réponse:
LOGOUT - supprimer une ressource
Demande:
Réponse:
la source
Concernant la méthode de déconnexion:
Dans la documentation Spring (Java Framework), ils indiquent qu'une requête POST est préférée, car un GET vous rend vulnérable à CSRF (Cross-Site Request Forgery) et l'utilisateur peut être déconnecté.
Voir: https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
La connexion doit également utiliser POST (le corps peut être chiffré, voir les autres réponses).
la source
Pour la demande de connexion, nous devons utiliser la méthode POST. Parce que nos données de connexion sont sécurisées, ce qui nécessite une sécurité. Lorsque vous utilisez la méthode POST, les données sont envoyées au serveur dans un ensemble. Mais dans la méthode GET, les données sont envoyées au serveur, suivies de l'url comme ajouter avec une demande d'url qui sera vue par tout le monde.
Donc, pour un processus d'authentification et d'autorisation sécurisé, nous devons utiliser la méthode POST.
J'espère que cette solution vous aidera.
Merci
la source
Pour la connexion, j'utilise POST, voici mon code pour la méthode LOGIN que j'ai utilisé Nodejs avec Express et Mongoose
la source