Ich entwickle eine API, die auch eine Authentifizierungs-/Autorisierungskomponente haben wird.Sollte ich 401 oder 405 Response-Code an einen REST-API-Benutzer ohne ausreichenden Zugriff zurückgeben?
Jeder, unabhängig vom Authentifizierungsstatus, kann schreiben (POST), aber abhängig davon, ob Sie nicht authentifiziert, als normaler Benutzer authentifiziert oder als Administrator authentifiziert sind und auf welche Ressource Sie zugreifen möchten um verschiedene Antworten für GET, DELETE und PUT zurückzugeben.
Ich versuche, den am besten geeigneten Antwortcode für einen Benutzer herauszufinden, der nicht authentifiziert und/oder autorisiert ist.
Beachten Sie http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html:
Unauthorized -> 401
Verboten -> 403
Methode nicht erlaubt -> 405
Lassen Sie sich ein spezifischen Beispiele verwenden:
- John Doe ist nicht authentifiziert, auf DELETE sollte er eine 401 oder eine 405 erhalten?
- Amy ist authentifiziert aber nicht autorisiert, auf DELETE sollte sie eine 403 oder eine 405 erhalten?
(Beachten Sie, dass, obwohl John und Amy sind verboten oder nicht autorisiert das bedeutet nicht, sie in der Lage Arent die gleiche Ressource mit einem anderen HTTP-Verb zuzugreifen.)
Dank.
Siehe auch http://stackoverflow.com/questions/3297048/403-forbidden-vs-401-unauthorized-http-responses – Ryan
So John sollte 401 erhalten, sollte Amy 403. – Ryan
405 Methode nicht erlaubt scheint [völlig unabhängig] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). – Ryan