RESTful Login Failure: Rückgabe von 401 oder einer benutzerdefinierten Antwort

Dies ist eine konzeptionelle Frage.

Ich habe eine Clientanwendung (für Mobilgeräte), die eine Anmeldeaktion für einen RESTful-Webdienst unterstützen muss. Da der Webdienst REST-fähig ist, bedeutet dies, dass der Client einen Benutzernamen / ein Kennwort vom Benutzer akzeptiert, diesen Benutzernamen / dieses Kennwort mit dem Dienst überprüft und sich dann nur daran erinnert, diesen Benutzernamen / dieses Kennwort bei allen nachfolgenden Anforderungen zu senden.

Alle anderen Antworten in diesem Webdienst werden in einem JSON-Format bereitgestellt.

Die Frage ist, ob der Webdienst, wenn ich den Webdienst abfrage, nur um herauszufinden, ob ein bestimmter Benutzername / ein bestimmtes Kennwort gültig ist, immer mit JSON-Daten antwortet, die mir den Erfolg oder Misserfolg des Webdiensts mitteilen, oder ob er HTTP 200 bei guten Anmeldeinformationen und HTTP zurückgibt 401 auf schlechte Anmeldeinformationen.

Der Grund, den ich frage, ist, dass einige andere RESTful-Dienste 401 für fehlerhafte Anmeldeinformationen verwenden, selbst wenn Sie nur fragen, ob die Anmeldeinformationen gültig sind. Nach meinem Verständnis der 401-Antworten handelt es sich jedoch um eine Ressource, auf die Sie ohne gültige Anmeldeinformationen keinen Zugriff haben sollten. Die Anmelderessource sollte jedoch für jeden zugänglich sein, da der gesamte Zweck der Anmelderessource darin besteht, Ihnen mitzuteilen, ob Ihre Anmeldeinformationen gültig sind.

Anders ausgedrückt scheint mir eine Anfrage wie:

myservice.com/this/is/a/user/action 

sollte 401 zurückgeben, wenn falsche Anmeldeinformationen angegeben werden. Aber eine Anfrage wie:

myservice.com/are/these/credentials/valid

sollte niemals 401 zurückgeben, da diese bestimmte URL (Anfrage) mit oder ohne gültige Anmeldeinformationen autorisiert ist.

Ich würde gerne einige berechtigte Meinungen dazu hören. Wie wird dies standardmäßig gehandhabt, und wie ist es logisch angebracht, damit umzugehen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage