Ich habe eine Webanwendung, die RESTful URL-Muster verwendet. Wenn ein Benutzer derzeit versucht, auf eine Seite zuzugreifen, auf der er authentifiziert werden muss, gibt er nichts zurück. Ist es in diesem Fall empfehlenswert, den HTTP-Statuscode zurückzugeben? Würde ich 403 oder einen anderen verwenden?REST HTTP-Statuscode für Inhalt, der Authentifizierung benötigt?
Antwort
Sie sollten eine Antwort mit dem HTTP-Statuscode senden.
würde ich zurück, obwohl kein 403 Forbidden senden, wie die Spezifikation legt für diesen Statuscode:
Der Server hat die Anforderung verstanden, aber weigert sich, sie zu erfüllen. Autorisierung wird nicht helfen, und die Anfrage, sollten Sie nicht
Return einen 401 Unauthorized Statuscode stattdessen wiederholt werden. Sehen Sie diese für weitere Informationen über den Status-Codes:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
So wie ich tue dies mit Jersey ist eine Antwort mit dem Status zu senden und dann gehört eine String Einheit, die eine menschliche lesbare Nachricht enthält, z.B.
Response response = Response.status(Status.PRECONDITION_FAILED).entity(
new String("Incorrect " + id + " [" + id + "]")).build();
Dies wird dem Client angezeigt. Ich werfe eine Jersey WebApplicationException, die diese Antwort umschließt.
Danke Jon, das war sehr hilfreich. –
Wenn sie keine Berechtigungen haben, geben Sie 401 zurück, um ihnen die Möglichkeit zu geben, auf die Authentifizierungsherausforderung zu antworten, oder 403, wenn Sie sie nicht haben wollen.
Restlet 1.1 ab 403 zurückgeben, während frühere Versionen 401 zurückgeben. 403 scheint als richtiger, wenn nicht unbedingt hilfreicher angesehen zu werden.
Kommt drauf an. Sie sollten wirklich etwas zurückgeben, nur um eine anständige Kundenerfahrung zu haben. Wenn Sie ihnen die Gelegenheit geben möchten, sich in diesem Moment zu authentifizieren, können Sie eine 401 zurückgeben, und der Client weiß, dass er Anmeldeinformationen mit der Standardauthentifizierung weitergibt. Wenn Sie jedoch bevorzugen, dass sie sich über einen anderen Mechanismus authentifizieren (eine Login-URL und dann ein Cookie oder etwas Ähnliches), dann ist die Rückgabe eines 403 wahrscheinlich der richtige Weg.
lol ... in der REST-API-Implementierung, die ich gerade gebaut habe, gab ich einen 401-Statuscode mit einem Antworttext zurück, der "Auf Wiedersehen" las. War das erste, worüber sich der Kerl beschwerte, wenn er mit API interagierte. Ich denke immer noch "Auf Wiedersehen" sagte alles;)
- 1. Rückgabe HttpStatusCode in der Antwort
- 2. Anspruchsbasierte Authentifizierung für WCF-REST-konforme Dienste
- 3. Authentifizierung für Sinatra REST API App
- 4. Authentifizierung für Java Rally Rest API
- 5. WCF Authentifizierung/Autorisierung - Hilfe benötigt
- 6. CakePHP-Authentifizierung in der REST-API
- 7. Django Rest Framework Authentifizierung Fehler
- 8. TeamCity Nant REST Authentifizierung
- 9. WCF REST RequestInterceptor Authentifizierung
- 10. Testen der Authentifizierung mit REST Framework JWT?
- 11. HttpResponseException Annahme nicht Httpstatuscode
- 12. TFS 2015-REST-API-Authentifizierung
- 13. REST API-Authentifizierung mit SAML
- 14. BASIC-Authentifizierung von JAVA 2013 REST API
- 15. REST-Authentifizierung in PHP (CodeIgniter)
- 16. Authentifizierung fehlgeschlagen django Rest Rahmen
- 17. Benutzerdefinierter HttpStatusCode ohne Fehlermeldung (HttpActionResult)
- 18. REST Authentifizierung/Autorisierung mit JWT föderierten Identitäten
- 19. WCF Rest Service Windows-Authentifizierung über Browser
- 20. ASPnet MVC Identität - SendAsync Httpstatuscode
- 21. Getting a HttpStatusCode of 0
- 22. von int-Wert generieren Httpstatuscode
- 23. Rückgabe HttpStatusCode in API-Methode
- 24. woocommerce Rest API OAuth Authentifizierung in Android
- 25. Authentifizierung der JIRA-REST-API mithilfe von OAuth mit Node.JS
- 26. Client mit REST-API-Authentifizierung konfrontiert
- 27. node.js REST API-Authentifizierung und oauth2
- 28. Office 365 Rest API - Daemon Woche Authentifizierung
- 29. HIPPO CMS HST benutzerdefinierte Rest API-Authentifizierung
- 30. JIRA REST API und Kerberos Authentifizierung
REST hat nichts mit URI-Mustern zu tun. "RESTful URL-Muster" ist völliger Unsinn. Ich vermute, dass Ihre API einfach RPC ist. – aehlke