Ich bin neu in RESTful Web Services und ich versuche, meinen ersten sicheren Web-Service mit JAX-RS zu entwerfen. Aber ich habe Zweifel.JAX-RS - Authentifizierung und Benutzerdaten in RESTful Web-Services
Stellen Sie sich vor, ich habe eine Messenger-API, wo ich einen "/ Posts" -Webdienst habe, der mir alle Posts für den Benutzer geben würde, der ihn anruft. Also habe ich einen Basisauthentifizierungsfilter entwickelt, der die Authentifizierung durchführt, und wenn ein gültiger Benutzer vorhanden ist, übergibt er die Anfrage an den/posts-Dienst, der eine Liste von Posts für den Benutzer bereitstellt. Jetzt ist das Problem, der Benutzer in meiner DB hat eine Benutzer-ID, die dem Benutzer nicht ausgesetzt ist. Innerhalb des/posts-Dienstes benötige ich die userId, um die Posts des anfragenden Benutzers zu erhalten. Also mein Filter macht die Authentifizierung und erhält die userId für den angemeldeten Benutzer.
Meine Frage ist, wie diese userId an die/Posts Web-Service?
Meine Vorgehensweise besteht jetzt darin, diese userId als Anforderungsheaderinfo im Filter hinzuzufügen und sie dann an den/posts-Dienst zu übergeben.
Aber ich bin verwirrt, wenn dies der richtige Ansatz ist, oder sollte dieses Szenario auf eine andere Art elegant gehandhabt werden?
Bitte helfen Sie mir zu verstehen, was der beste Ansatz sein könnte, um es zu tun.
Ich habe daran gedacht, die Authentifizierungsimplementierung zu OAuth oder einem Standard zu ändern. Da die Authentifizierung in dem Filter durchgeführt wird, sollte der Dienst nicht damit belastet werden, welcher Authentifizierungsmechanismus befolgt wird. Meine einzige Frage ist, wie man die Benutzer-ID an den Dienst weitergibt. Sie haben erwähnt, dass Sie Sitzungen verwenden, aber ich habe gelesen, dass REST-Ressourcen staatenlos sind. Wie erstelle ich eine Sitzung, und wenn ich das auch tue, ist dies eine gute Übung? Ist das nicht wieder ein Stateful? Können Sie bitte einen Link für die JWT, die Sie erwähnt haben, zur Verfügung stellen. Es kann nützlich sein. – Manish
https://auth0.com/learn/json-web-tokens/ https://jwt.io/ REST-Dienste können zustandslos sein, es ist auch zulässig, Rest-Endpunkte innerhalb einer statusbehafteten Anwendung zu haben. Was das Erstellen einer Sitzung betrifft, hängt das vollständig von der Sprache ab, in der Sie Ihren Webservice implementieren. PHP hat eine andere Sitzungsverwaltung als der Frühling. Cookies könnten ebenfalls eine Option sein. – blur0224
Danke für den Link. – Manish