Symfony 3 authenticate-user vor remote-API

Ich habe eine Anwendung, in dem back-end und front-end-serviert von verschiedenen Rechnern und zwei verschiedenen Anwendungen (sowohl Symfony 3 basiert).

Einer von Ihnen (back-end ofc) übernimmt business logic und hält die Nutzer und Ihre Rollen im DB. Back-end bietet eine REST-API verwendet werden, um den front-end. Ich habe keine Möglichkeit, das zu ändern back-end-code, da es nicht mein Projekt – ich will nur ein front-end für ihn.

Derzeit, ich versuche zu schaffen, front-end-app in Symfony 3, aber ich bin nicht sicher, wie man die front-end-app authentifizieren gegen eine remote-API und halten Sie keine Benutzer-Daten (oder so wenig wie möglich) auf seiner Seite.

Nach der Weitergabe der Anmeldeinformationen an das backend über REST-API-token gesendet wird, um auf front-end-Anwendung, und folgende API-Anfragen (z.B. Daten der front-end-app würde der Benutzer geschickt werden, die mit token erhalten nach erfolgreicher Authentifizierung).

Meine Frage nochmal: Wie kann ich eine Authentifizierung für remote-benutzerdefinierte (nicht-OAuth-API von Symfony 3?

Sowie zusätzlich: zu behandeln, Wie token korrekt später? (es muss verwendet werden, während jede Anfrage nach erfolgreicher Authentifizierung). Was ist der einfachste Weg, dies zu erreichen?


Ich habe gekämpft, anständige info (vielleicht ein tutorial?) Ich bin ein noob in Symfony 🙁

Meisten Artikel beschreiben die Bereitstellung einer API, die es clients ermöglicht, sich zu verbinden, nicht mit einer client-app in Symfony.

Was ich gefunden habe:
Symfony2-Authentifizierung via 3rd-Party-REST-API – die meisten relevanten, aber es beschreibt eine Strömung für Symfony 2 und die akzeptierte Antwort, die beschreibt, was getan werden sollte, nur kurz

https://blog.vandenbrand.org/2012/06/19/symfony2-authentication-provider-authenticate-against-webservice/ – über Symfony 2

http://symfony.com/doc/current/security/custom_authentication_provider.html – den wohl die meisten zum Thema, aber ich verstehe nicht, wo werden die app halten, die es Benutzern (schreiben einer benutzerdefinierten Anbieter notwendig, die in diesem Beispiel?)



One Reply
  1. 0

    Haben Sie bereits gefunden, die Antwort auf Ihre Frage. Das ist benutzerdefinierter Authentifizierungsanbieter. Sie können das Token in Ihrem frontend-app-Speicher, und nur diese authentifizieren. Beim login sollten Sie das token mittels Anfrage an backend-app, speichern Sie es in Ihrem token-Speicher und das ist alles. Dann brauchen Sie nur zur Authentifizierung der token (nur ein Beispiel von auth-provider).

    Bezüglich der Pflege von Benutzerdaten in Ihrem frontend-app, es ist bis zu Ihnen. Sie müssen nicht immer alle Daten, also, wenn Sie möchten, zeigen einige Daten (D. H. Benutzername und so weiter), die Sie haben, zu speichern, dass details zu (oder abrufen jede Anforderung – das wird aber Auswirkungen auf die performance). Zumindest können Sie die Zwischenspeicherung für das.

    Also der mögliche Ansatz ist:

    1. Auf login(mit login-Formular oder an anderer Stelle), nur authentifiziert Benutzer in der login-handler (erstellen Sie Ihre eigenen auth-provider wie beschrieben es – Mach dir keine sorgen über Symfony 2, security-Komponente ist fast das gleiche – es gibt einige Inkompatibilitäten, aber die Richtung stimmt). Nach der erfolgreichen Authentifizierung, speichern token in Ihrem frontend-Speicher (Sie können auch speichern manche Benutzer details wie Namen und so weiter).
    2. Auf jede Anforderung, die Authentifizierung der Benutzer mit Hilfe der token ist gehalten, in Ihrem frontend-app-Speicher (das ist eine andere auth-provider) – Sie brauchen nicht, um Anfrage senden, um Ihre back-End-app.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.