Ich habe eine JSON-REST-API. Es gibt einen Handschlag, mit dem Sie einen Token erhalten, der 15 Minuten gültig ist. Alle Anrufe, die Sie innerhalb dieser 15 Minuten tätigen, sollten in Ordnung sein. Nach den 15 Minuten gebe ich ein Fehlerobjekt zurück (einschließlich Code, Nachricht, Erfolg = falsch), habe mich aber auch gefragt, welchen HTTP-Fehlercode ich zurückgeben soll. Und wird die Verwendung eines HTTP-Fehlercodes bestimmte Clients durcheinander bringen? (HTML5, iPhone, Android). Was wird in diesem Szenario als Best Practice angesehen?
web-services
rest
api-design
BuddyJoe
quelle
quelle
Antworten:
Sie sollten einen
401 Unauthorized
Statuscode zurückgeben. Sie können zusätzlich Hypermedia bereitstellen, um das Token erneut einzurichtenÜberlegen Sie, was in einer Web-App passiert. Sie gehen, um eine Bankenseite zu sagen. Wenn dies nicht autorisiert ist, werden Sie zur Anmeldeseite weitergeleitet. Dann melden Sie sich an und können eine Zeit lang loslegen. Dann läuft es ab und der Zyklus wiederholt sich.
Nur ein Gedanke.
quelle
Gemäß der Spezifikation rfc6750 - "Das OAuth 2.0-Autorisierungsframework: Verwendung von Bearer-Token", https://tools.ietf.org/html/rfc6750 , S. 8, Abschnitt 3.1, sollte der Ressourcenserver 401:> zurückgeben
quelle
FWIW Facebook verwendet 400 mit einer benutzerdefinierten JSON-Antwort. Ich persönlich würde 401 mit benutzerdefinierter JSON-Antwort bevorzugen.
Hier ist der Antworttext von FB:
{ "error": { "message": "Error validating access token: Session has expired on Jul 17, 2014 9:00am. The current time is Jul 17, 2014 9:07am.", "type": "OAuthException", "code": 190, "error_subcode": 463 } }
quelle