Deutsch
  • Konnektor
  • Low-Code

Wie wir eine Reihe von unterschiedlichen Konnektoren unterstützen

Die Geschichte, wie wir eine Reihe von unterschiedlichen Konnektoren mit sowohl guter Nutzererfahrung als auch guter Entwicklungserfahrung unterstützen. Mithilfe der konfigurationsgesteuerten Entwicklung haben wir eine Low-Code-Konnektorenplattform erstellt.

Sijie
Sijie
Developer

Einführung

Konnektoren spielen eine entscheidende Rolle in Logto. Mit ihrer Hilfe ermöglicht Logto den Endbenutzern die passwortlose Registrierung oder Anmeldung sowie die Möglichkeit, sich mit sozialen Konten anzumelden. Logto ermöglicht es den Benutzern, ihre eigenen Konnektoren zu installieren oder zu erstellen, und es gibt bereits mehr als 20 offizielle Konnektoren. Unsere Konnektoren sind so konzipiert, dass sie sehr flexibel sind und es den Benutzern erlauben, ihre eigenen zu installieren oder sogar zu entwickeln. Gleichzeitig ist es einfach, einen neuen Konnektor zu entwickeln. Um dies zu erreichen, haben wir eine Lösung namens „Dynamic Form“ entwickelt und implementiert, die von der Config Driven Development (CDD) inspiriert ist.

Hintergrund

Die Konfiguration für den Logto-Konnektor ist ein JSON, das zwar flexibel, aber schwer zu bearbeiten und zu validieren sein kann. Am Anfang war das noch kein großes Problem, da die meisten JSON-Konfigurationen zu dieser Zeit folgendermaßen aussahen:

Aber als wir mehr und mehr Anbieter und Protokolle unterstützen, begannen sich die Dinge zu ändern. Nehmen wir den „SAML-Konnektor“ als Beispiel: Es gibt mehr als 10 Schlüssel in der JSON-Konfiguration, und die Art der Werte ist komplex; es gibt Strings, Zahlen, JSONs, Auswahlwerte und mehrzeilige Strings für Zertifikate.

Daher denken wir, dass es an der Zeit ist, ein gut gestaltetes Formular einzuführen, um den JSON-Editor zu ersetzen. Der Logto-Konnektor ist so konzipiert, dass er als Drittanbieteranwendung funktioniert, daher ist das Hardcoding von Formularen keine tragfähige Lösung. Das Ergebnis ist ein starker Bedarf an dynamischen Formularen, die einfach zu verwalten sind und gleichzeitig eine gute Benutzererfahrung haben. Das Formular für den oben genannten SAML-Konnektor sieht folgendermaßen aus:

SAML-Konnektor-Konfiguration

Was ist konfigurationsgesteuerte Entwicklung (CDD)

CDD, oder Component Driven Development, bietet einen alternativen Ansatz zur Erstellung von Anwendungen. Im herkömmlichen Verfahren entwerfen leitende Architekten Designs basierend auf den geschäftlichen Anforderungen, die Anwendung wird dann entwickelt und bereitgestellt, und alle Änderungen werden entweder durch zusätzliche Elemente oder durch schwierige Refaktorisierungen ausgeführt.

Im Gegensatz dazu konzentriert sich CDD darauf, von Anfang an unabhängige Komponenten zu erstellen, beginnend auf der grundlegendsten Ebene. Eine Schnittstelle, typischerweise JSON, wird erstellt, um die Benutzeroberfläche auf höherer Ebene zusammenzustellen. Diese Methode, die die Kombination wiederverwendbarer Komponenten und eines JSON-Blueprints umfasst, ermöglicht es Entwicklern, Anwendungen auf flexiblere und skalierbare Weise bequem zu erstellen.

Das Wesen von CDD liegt in der Nutzung von Modularität, um eine locker verbundene Menge von Komponenten zu erstellen, die dann über eine standardisierte Schnittstelle zusammengeführt werden.

Was ist ein dynamisches Formular?

Die Nutzung des konfigurationsgesteuerten Entwicklungsansatzes (CDD) ermöglicht es uns, dynamische Webformulare zu erstellen. Dies sind keine gewöhnlichen Formulare mit statischen, unveränderlichen Feldern, sondern dynamische Entitäten mit Feldern, die basierend auf einer JSON-Datei generiert werden. Die Schönheit dieser dynamischen Webformulare liegt in ihrer Flexibilität – bei Bedarf genügt eine Aktualisierung der JSON-Konfiguration. Dieses Maß an Anpassungsfähigkeit macht dynamische Webformulare zu einer idealen Lösung für Logto-Konnektoren, die unterschiedliche Formularkonfigurationen erfordern, die Logto unbekannt sind.

Schema entwerfen

Wir haben das Schema als ein Array von Formularelementen entworfen, wobei jedes Element einen Namen, ein Label, einen Platzhalter und am wichtigsten den Typ haben kann. Wir haben 6 Arten von Formularelementen und definieren diese als Enum:

Und die Typdefinition des Formularelements ist:

Dann ist das vollständige Schema:

Aber es gibt ein kleines Problem: Der Formular-Typ „select“ benötigt eine Liste von Optionen, daher fügen wir dieses Feld zu FormItem hinzu:

Das Formular mit React-Hook-Form erstellen

Da das Schema festgelegt ist, können wir das Formular im Frontend basierend auf dem Schema erstellen. Wir verwenden dafür React Hook Form.

React-Hook-Form ist ein leistungsstarkes Werkzeug zum Erstellen effektiver, einfach zu verwendender Formulare in React.

Das Erste ist, ein Formular zu initialisieren, dabei nehmen wir an, dass die JSON-Konfiguration abgerufen wurde und formItems genannt wird, und die Daten im Formular sind formData:

Dann implementieren wir das Formularelement entsprechend dem Typ, hier ist eine einfache Darstellung:

Fazit

Die Vielseitigkeit der konfigurationsgesteuerten Entwicklung (CDD) zeigt sich deutlich bei der Anwendung auf die Erstellung dynamischer Formulare, insbesondere im Fall der Logto-Konnektoren. Die Vorteile sind zwei gleisig:

  1. Für Entwickler vereinfacht es den Prozess der Erstellung interaktiver und benutzerfreundlicher Formulare. Anstatt mit komplexen Kodierungskomplexitäten umzugehen, müssen Entwickler nur eine JSON-Datei definieren, um die besser gestalteten, intuitiven Benutzeroberflächen zu erhalten, die vom Logto-Team entworfen wurden.
  2. Für Benutzer vereinfacht dieser Ansatz den Prozess der Einrichtung eines Konnektors erheblich. Es nimmt die Komplexität aus der Integration und macht es den Benutzern einfacher, Logto mit sozialen Anmeldefunktionen sowie E-Mail- oder SMS-Diensten zu integrieren.

In letzter Zeit sind Artikel, die Low Code bewerben, allgegenwärtig im Internet. Diese Lösung wurde aus der Perspektive der tatsächlichen Benutzerbedürfnisse entwickelt, und wir glauben, dass sie eine hervorragende Darstellung von Low Code ist.

Möchtest du es ausprobieren? Gehe zur Logto Cloud und wähle einen Konnektor.