跳转到内容

Identität und Anmeldung

此内容尚不支持你的语言。

Module und Toolkit wissen nicht, wie sich jemand anmeldet. Sie fragen den Connector Die Implementierung des DataInterface für eine konkrete Datenquelle, ergänzt um unterstützte Capabilities. Die Steckstelle des Stacks nach unten. GlossarConnector The implementation of the DataInterface for one data source, plus the capabilities it supports. The stack's socket downward. Glossary, ob er Anmeldung kann, welche Wege er anbietet und wer gerade angemeldet ist. Ob dahinter ein Schlüsselpaar im Browser steht oder ein Konto auf einem Server, entscheidet allein der Connector.

Der Vertrag

interface Authenticatable {
getCurrentUser(): Promise<User | null>
observeCurrentUser(): Observable<User | null>
getUser(id: string): Promise<User | null>
getAuthState(): Observable<AuthState> // loading | unauthenticated | authenticated + user
getAuthMethods(): AuthMethod[] // { method: string, label: string }
authenticate(method: string, credentials: unknown): Promise<User>
logout(): Promise<void>
}
  • Die Fähigkeit ist optional. isAuthenticatable(connector) prüft sie. Ein Connector, der nur liest, lässt sie weg.
  • Methoden sind Namen, Zugangsdaten sind unknown. Jeder Connector bringt seine Wege mit und legt selbst fest, was er dafür braucht. Ein neuer Weg ändert den Vertrag nicht.
  • User.id ist undurchsichtig. Im Web of Trust ist sie eine DID, bei Supabase eine UUID. Module vergleichen sie, sie lesen nichts aus ihr.
  • Der Anmeldestatus ist ein Observable. Läuft eine Sitzung ab oder meldet sich jemand in einem anderen Tab ab, schließt sich die App wieder.

Die Connectoren

Connector Wege (authenticate) Identität Wer bürgt für den Autor
wot generate, create, mnemonic, unlock did:key aus zwölf Wörtern, Schlüssel im Gerät die Signatur, jeder kann sie prüfen
supabase email, email-signup, anonymous Supabase-UUID, Sitzung über supabase-js der Server, über Row-Level-Security
local local ein lokaler Nutzer je Browser oder Tab niemand, nur zum Ausprobieren
mock mock der erste Beispielnutzer niemand, nur für Demos

In beiden echten Connectoren kommt der Autor eines Eintrags aus der Sitzung, nie aus den gesendeten Daten. Wie die App das in Knöpfe übersetzt, steht unter Fähigkeit, Berechtigung, Herkunft.

Wer den Anmeldebildschirm zeigt

Die Referenz-App entscheidet in ihrem AuthGate:

  • Web of Trust: Der WoT-Connector bringt mit DIDAuthScreen einen eigenen Ablauf mit. Er erzeugt die Wörter, lässt sie sichern, setzt eine Passphrase und kann eine Identität wiederherstellen oder entsperren.
  • Alle anderen: Der AuthScreen aus dem Toolkit liest getAuthMethods() und zeigt die Wege, die er kennt: email, email-signup und anonymous.

Eine App, eine Identität

Eine App hält genau einen Connector. Wer sich anmeldet, ist damit für die ganze App diese eine Identität, und alle Space Der gemeinsame Arbeits-, Mitgliedschafts- und Sichtbarkeitskontext. Im Datenvertrag heißt er Group. GlossarSpace The shared context for work, membership and visibility. In the data contract it is called Group. Glossary der App liegen in derselben Quelle.