1

Ich habe ein Frontend (SPA, angular2, lite-server) und ein verstecktes Backend (nicht public, dh localhost: 8080, Springboot + Spring Security), Frontend kann auf Backend per Proxy zugreifen frontend/api Anrufe an backend/api unter der Haube.OAuth2: Autorisierungscode Zuschussfluss

Grundsätzlich sind die Schritte für diese Art von OAuth2 Strömung sind:

  1. On UI - treffen URL zu Autorisierungs-Server mit redirect_uri
  2. angegeben
  3. Autorisieren
  4. Holen Sie sich zurück mit Zugangscode
  5. redirect_uri
  6. ???
  7. Server tauscht Zugangscode für ein Autorisierungs-Token und hält sie
  8. Benutzer (authentifiziert) wird zurück auf die Seite er

Ich kann nicht die Schritte zwischen 3 und 5 für den Zugriff eingeschränkt wurde mein Backend-Server ist unsichtbar, der Redirect_uri sollte der im Frontend sein. Ich könnte möglicherweise eine frontend/api/auth verwenden, die den Anruf an backend/api/auth Proxy und Backend wird erfolgreich erhalten die Autorisierung gewähren jedoch in diesem Fall Benutzer wird nicht zurück zu einem Frontend umgeleitet werden. Also, sollte ich den Code in der Javascript und eine POST zu /api/auth von der Javascript statt?

Auch bekomme ich nicht, wie man zu Schritt 6 danach als nach allen Weiterleitungen SPA-App wird neu geladen (den Status) und redirect_uri ist eine URL zu /api/auth.

+0

Wie haben Sie das gelöst? – flyer88

+0

Das erste - zu Spring-sozialen anstelle von Frühjahr-oauth2 geschaltet, aber sobald Sie die Idee, können Sie das gleiche mit Feder-oauth2 tun. Also, die Schritte sind: 0) Konfigurieren Sie entweder Umleitung URL oder geben Sie es als Parameter an/api/auth/facebook umleiten 1) Klicken Sie auf Autorisieren Symbol ->/api/auth/facebook -> Backend/auth/facebook 2) Backend startet den Tanz und auf komplett geht um URL umleiten (siehe Schritt 0) 3) unter der Haube wird es/api/auth/facebook? authorization_code = blabla 4) Frühling kümmert sich darum, stellen Sie sicher, dass Sie Frühling einrichten nach Erfolg auf die Benutzeroberfläche umleiten (successHandler.setDefaultTargetUrl) –

Antwort

0

Wenn ich die Frage richtig beantworte, wäre es am einfachsten, den Server über Localtunnel oder Ngrok zu "entlarven".

Verwandte Themen