2017-10-20 2 views
0

Ich möchte eine Angular4 WebApp erstellen, die eine Login/Anmeldeseite für Benutzer enthält. Ich muss es in der Lage sein zu haben:Angular4 OAuth2 IdentityServer4

  • Individuelle Anmeldung (dh Benutzer dort eigene Benutzername/Passwort konfiguriert)
  • Google Anmeldung
  • Facebook Login

Bisher mein Verständnis ist, dass ich müssen die folgenden:

  • Client (meine Angular4 web app)
  • Auth Server (IdentityServer4?)
  • Ressource-Server (ASP.NET Core-Web Api)

Wenn ich so etwas wie IdentityServer4 wie mein Auth-Server nutzen. Ich wäre nicht in der Lage, mein Anmelde-/Anmeldeformular in die App zu integrieren. Ich müsste immer zum AuthServer umleiten, um die Anmeldung durchzuführen und dann zusammen mit dem Zugriffstoken zurück zu meinem Client umzuleiten. Was ist ein Benutzererlebnis, das wir nicht wirklich wollen, aber mir ist keine Alternative bekannt?

Meine Fragen sind:

  1. Bin ich richtig, dass meine Angular4 App kein Login/Anmelden Seite haben kann, wenn ich IdentityServer4 verwenden. Es muss auf dem AuthServer umgeleitet und durchgeführt wird, selbst
  2. Gibt es eine Alternative I

Antwort

1

Mit IdentityServer für das Front-End statt IdentityServer4 zum Erstellen von Login/Anmelden mit einem Winkel Web-App basierte auf meinen Anforderungen nutzen kann von Anmeldeformularen ist völlig optional. Ich empfehle, auf the various Flows that are supported nachzulesen. Die einfachste (oft als "veraltet" und unsicher) zu verstehende Option ist der Ressourceneignerpasswortfluss, der einer der Abläufe ist, die eine reine JavaScript-Lösung zum Abrufen und Verwenden von Tokens mithilfe eines Formulars Ihrer eigenen Erstellung ermöglicht.

Um Ihre Fragen direkt zu beantworten:

  1. Nein, Sie sind nicht korrekt. Flows mit Umleitung sind nur eine der Optionen, Flows ohne (mit nur einem Formular in Ihrer eigenen App) sind ebenfalls möglich.
  2. Ja, es gibt wahrscheinlich Alternativen, aber Stack Overflow ist nicht gut/für Empfehlungen gedacht. Vielleicht möchten Sie überprüfen, SoftwareRecs.SE (lesen Sie ihre FAQ, obwohl!) Für die Untersuchung.