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.idist 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
DIDAuthScreeneinen 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
AuthScreenaus dem Toolkit liestgetAuthMethods()und zeigt die Wege, die er kennt:email,email-signupundanonymous.
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.