Diese Dokumentation wurde automatisch von KI übersetzt.
NocoBase ermöglicht es Ihnen, Benutzerauthentifizierungstypen nach Bedarf zu erweitern. Die Benutzerauthentifizierung lässt sich grundsätzlich in zwei Typen unterteilen: Zum einen die Bestimmung der Benutzeridentität innerhalb der NocoBase-Anwendung selbst, wie z. B. die Anmeldung mit Passwort oder SMS. Zum anderen die Bestimmung der Benutzeridentität durch Drittanbieterdienste, die das Ergebnis über Callbacks an die NocoBase-Anwendung übermitteln, wie z. B. OIDC oder SAML. Der Authentifizierungsprozess für diese beiden Typen in NocoBase ist im Wesentlichen wie folgt:
api.auth.signIn() auf und fordert die Anmeldeschnittstelle auth:signIn an. Dabei wird der Bezeichner des aktuell verwendeten Authentifikators über den Request-Header X-Authenticator an das Backend übermittelt.auth:signIn-Schnittstelle leitet die Anfrage basierend auf dem Authentifikator-Bezeichner im Request-Header an den entsprechenden Authentifizierungstyp weiter. Die validate-Methode der für diesen Authentifizierungstyp registrierten Authentifizierungsklasse übernimmt dann die entsprechende logische Verarbeitung.token aus der auth:signIn-Schnittstellenantwort, speichert den token im Local Storage und schließt die Anmeldung ab. Dieser Schritt wird automatisch intern vom SDK verarbeitet.
auth:getAuthUrl) die URL für die Drittanbieter-Anmeldung ab und übermittelt gemäß Protokoll Informationen wie den Anwendungsnamen und den Authentifikator-Bezeichner.auth:redirect) auf. Er gibt das Authentifizierungsergebnis sowie Informationen wie den Anwendungsnamen und den Authentifikator-Bezeichner zurück.AuthManager die entsprechende Authentifizierungsklasse ab und ruft aktiv die Methode auth.signIn() auf. Die Methode auth.signIn() wiederum ruft die Methode validate() auf, um die Authentifizierungslogik zu verarbeiten.token erhalten hat, leitet sie mit dem Statuscode 302 zurück zur Frontend-Seite weiter und übergibt den token sowie den Authentifikator-Bezeichner als URL-Parameter, z. B. ?authenticator=xxx&token=yyy.
Im Folgenden wird beschrieben, wie Sie serverseitige Schnittstellen und clientseitige Benutzeroberflächen registrieren.
Der NocoBase-Kernel bietet die Registrierung und Verwaltung zur Erweiterung von Authentifizierungstypen. Die Kernlogik für die Erweiterung eines Anmelde-Plugins erfordert die Vererbung von der abstrakten Klasse Auth des Kernels und die Implementierung der entsprechenden Standardschnittstellen.
Eine vollständige API-Referenz finden Sie unter Auth.
Der Kernel registriert auch grundlegende Ressourcenoperationen im Zusammenhang mit der Benutzerauthentifizierung.
| API | Beschreibung |
|---|---|
auth:check | Überprüfen, ob Benutzer angemeldet ist |
auth:signIn | Anmelden |
auth:signUp | Registrieren |
auth:signOut | Abmelden |
In den meisten Fällen kann der erweiterte Benutzerauthentifizierungstyp auch die bestehende JWT-Authentifizierungslogik nutzen, um Anmeldeinformationen für den API-Zugriff des Benutzers zu generieren. Die BaseAuth-Klasse im Kernel bietet eine grundlegende Implementierung der abstrakten Klasse Auth. Siehe BaseAuth. Plugins können direkt von der BaseAuth-Klasse erben, um Teile des Logikcodes wiederzuverwenden und so die Entwicklungskosten zu senken.
Bei der Implementierung der Benutzerauthentifizierungslogik ist in der Regel die Verarbeitung von Benutzerdaten involviert. In einer NocoBase-Anwendung sind die zugehörigen Sammlungen standardmäßig wie folgt definiert:
| Daten-Sammlung | Beschreibung | Plugin |
|---|---|---|
users | Speichert Benutzerinformationen wie E-Mail, Spitzname und Passwort | Benutzer-Plugin (@nocobase/plugin-users) |
authenticators | Speichert Authentifikator-Informationen (Authentifizierungstyp-Entität), entsprechend dem Authentifizierungstyp und der Konfiguration | Benutzerauthentifizierungs-Plugin (@nocobase/plugin-auth) |
usersAuthenticators | Verknüpft Benutzer und Authentifikatoren, speichert Benutzerinformationen unter dem entsprechenden Authentifikator | Benutzerauthentifizierungs-Plugin (@nocobase/plugin-auth) |
Im Allgemeinen können erweiterte Anmeldemethoden die Sammlungen users und usersAuthenticators verwenden, um die entsprechenden Benutzerdaten zu speichern. Nur in speziellen Fällen ist es notwendig, eine neue Sammlung hinzuzufügen.
Die Hauptfelder von usersAuthenticators sind:
| Feld | Beschreibung |
|---|---|
uuid | Eindeutiger Benutzerbezeichner für diese Authentifizierungsmethode, z. B. Telefonnummer oder WeChat OpenID |
meta | JSON-Feld für weitere zu speichernde Informationen |
userId | Benutzer-ID |
authenticator | Name des Authentifikators (eindeutiger Bezeichner) |
Für Benutzerabfragen und -erstellungen kapselt das Datenmodell AuthModel der authenticators ebenfalls mehrere Methoden, die in der CustomAuth-Klasse über this.authenticator[Methodenname] verwendet werden können. Eine vollständige API-Referenz finden Sie unter AuthModel.
Die erweiterte Authentifizierungsmethode muss beim Authentifizierungsverwaltungsmodul registriert werden.
Die clientseitige Benutzeroberfläche wird über die vom Client des Benutzerauthentifizierungs-Plugins bereitgestellte Schnittstelle registerType registriert:

Wenn mehrere Authentifikatoren, die einem Authentifizierungstyp entsprechen, Anmeldeformulare registriert haben, werden diese in Form von Tabs angezeigt. Der Tab-Titel entspricht dem im Backend konfigurierten Titel des Authentifikators.


Dies ist in der Regel ein Anmelde-Button für Drittanbieter, kann aber tatsächlich jede beliebige Komponente sein.

Wenn Sie von der Anmeldeseite zur Registrierungsseite wechseln möchten, müssen Sie dies selbst in der Anmeldekomponente implementieren.

Oben sehen Sie die allgemeine Authentifikator-Konfiguration, unten den Teil des benutzerdefinierten Konfigurationsformulars, der registriert werden kann.
Um clientseitig Anfragen an Schnittstellen zur Benutzerauthentifizierung zu stellen, können Sie das von NocoBase bereitgestellte SDK verwenden.
Eine detaillierte API-Referenz finden Sie unter @nocobase/sdk - Auth.