Fehlgeschlagener Login gibt 200 Ok zurück

Ich führe einen POST an /session.json mit der Nutzlast aus

{
  "login": "skroob",
  "password": "12345",
  "authenticity_token": "..."
}

Wenn die Anmeldung erfolgreich ist, ist der Status 200 und das zurückgegebene JSON sind viele Benutzerdaten. Wenn die Anmeldung fehlschlägt, sieht das zurückgegebene JSON so aus

{"error": "Falscher Benutzername, E-Mail oder Passwort"}

aber der Status ist immer noch 200. Ist das ein Fehler? Sollte der Status für eine fehlgeschlagene Anmeldung etwas >= 400 sein, um einen Fehler anzuzeigen?

1 „Gefällt mir“

:thinking:

Vielleicht. Ich würde wahrscheinlich 401 wählen.

Aber das sind auch HTTP-Statuscodes für HTTP-Client-Verbindungen; Ich denke, diese Nuance führt zu Entscheidungen wie der Rückgabe einer 200 (“Ihre POST-Anfrage war erfolgreich, hier ist das Feedback”).

Ich bin mir selbst nicht sicher. :slight_smile:

1 „Gefällt mir“
1 „Gefällt mir“

Ich kann die Begründung für eine 200 bei einem fehlgeschlagenen Login nachvollziehen, was bedeutet, dass Ihr Login erfolgreich fehlgeschlagen ist, anstatt erfolglos fehlzuschlagen. :upside_down_face:

4 „Gefällt mir“

Beachten Sie, dass dies auch ein „Feature“ ist, da es Bots verwirrt, die versuchen, sich anzumelden.
Ich bin unschlüssig, ob ich das ändern soll. Vielleicht…

6 „Gefällt mir“

Ich bitte nicht um eine Änderung. Was ich wollte, war eine Disjunktion: eine Änderung ODER die Bestätigung, dass das Verhalten beabsichtigt ist – was ich jetzt habe. Danke!

3 „Gefällt mir“