Ich möchte wissen, welche http-Methode ich bei einer Anmeldeanforderung verwenden soll und warum? Da diese Anfrage ein Objekt (eine Benutzersitzung) auf dem Server erstellt, sollte es meiner Meinung nach POST sein. Was denken Sie? Aber da die Anmeldeanforderung idempotent sein sollte, könnte es PUT sein, nicht wahr?
Gleiche Frage für eine Abmeldeanforderung, sollte ich die DELETE-Methode verwenden?
quelle
Ich glaube, dass Sie LOGIN & LOGOUT-Methoden in grundlegende CRUD-Operationen CREATE & DELETE übersetzen können. Da Sie eine neue Ressource namens SESSION erstellen und diese beim Abmelden zerstören:
Ich würde LOGOUT niemals als GET ausführen, nur weil jeder einen Angriff ausführen könnte, indem er einfach eine E-Mail mit einem IMG-Tag oder einen Link zu einer Website sendet, auf der ein solches IMG-Tag vorhanden ist. (
<img src="youtsite.com/logout" />
)PS Lange habe ich mich gefragt, wie Sie ein RESTful-Login / Logout erstellen würden, und es stellte sich heraus, dass es wirklich einfach ist. Sie tun es genau so, wie ich es beschrieben habe: Verwenden Sie / session / endpoint mit den Methoden CREATE und DELETE, und es geht Ihnen gut. Sie können auch UPDATE verwenden, wenn Sie die Sitzung auf die eine oder andere Weise aktualisieren möchten ...
quelle
Hier ist meine Lösung basierend auf REST-Anleitungen und Empfehlungen:
ANMELDEN - Erstellen Sie eine Ressource
Anfrage:
Antwort:
LOGOUT - Löscht eine Ressource
Anfrage:
Antwort:
quelle
In Bezug auf die Methode zum Abmelden:
In der Spring-Dokumentation (Java Framework) wird angegeben, dass eine POST-Anforderung bevorzugt wird, da ein GET Sie für CSRF (Cross-Site Request Forgery) anfällig macht und der Benutzer abgemeldet werden kann.
Siehe: https://docs.spring.io/spring-security/site/docs/current/reference/html/web-app-security.html#csrf-logout
Bei der Anmeldung sollte auch POST verwendet werden (der Text kann verschlüsselt werden, siehe die anderen Antworten).
quelle
Für die Anmeldeanforderung sollten wir die POST-Methode verwenden. Weil unsere Anmeldedaten sicher sind und Sicherheit benötigen. Bei Verwendung der POST-Methode werden die Daten in einem Bundle an den Server gesendet. Bei der GET-Methode werden jedoch Daten an den Server gesendet, gefolgt von einem URL-ähnlichen Anhang mit einer URL-Anforderung, der für alle sichtbar ist.
Für einen sicheren Authentifizierungs- und Autorisierungsprozess sollten wir die POST-Methode verwenden.
Ich hoffe, diese Lösung wird Ihnen helfen.
Vielen Dank
quelle
Für die Anmeldung verwende ich POST. Unten ist mein Code für die LOGIN-Methode, die ich mit Nodejs mit Express und Mongoose verwendet habe
quelle