Zum Inhalt springen
supastack
Dokumentation durchstöbern
MobilExpo

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /de/docs/mobile/passkeys.md (or send Accept: text/markdown).

Passkey-Anmeldung

Passwortlose Anmeldung über eine Browser-Übergabe, die die Sitzung an die App zurückgibt.

So funktioniert die Übergabe

Die Passkey-Anmeldung beginnt in der App und endet im Systembrowser. Die App öffnet {API URL}/auth?mobile_callback=<deep link> über WebBrowser.openAuthSessionAsync; nachdem die Webseite eine beliebige Anmeldemethode abgeschlossen hat, ruft sie GET /api/auth/mobile-handoff auf, das zu <scheme>://auth/callback zurückleitet und dabei das Sitzungs-Cookie und eine State-Nonce mitführt.

Jeder Versuch erzeugt eine frische Nonce, die unverändert zurückkehren muss — ein abweichender state-Parameter wird als stateMismatch abgelehnt, sodass ein veralteter oder gefälschter Callback keine Sitzung einschleusen kann. Das zurückgegebene Cookie landet in demselben SecureStore-Cookie-Jar, den der Better-Auth-Expo-Client nutzt (supastack.auth_cookie); danach wird der Sitzungsspeicher benachrichtigt und die angemeldete App gerendert.

Ein weggewischtes Browser-Sheet wird als stilles cancelled-Ergebnis aufgelöst, nicht als Fehler — lassen Sie den Anmeldebildschirm in dem Fall unverändert.

# apps/mobile/.env.local
EXPO_PUBLIC_APP_SCHEME=supastack

# apps/web/.env.local — server side
AUTH_PASSKEY_ENABLED=true
MOBILE_ALLOWED_ORIGINS=

Halten Sie die Allowlist auf beiden Seiten identisch

Beide Seiten prüfen das Callback-Ziel: Die App akzeptiert nur <scheme>://auth plus ihre konfigurierten Produktions-Origins, und der Server prüft dieselbe Liste, die aus EXPO_PUBLIC_APP_SCHEME und MOBILE_ALLOWED_ORIGINS gebaut wird. Callbacks mit Zugangsdaten, unbekannten Schemas oder ähnlich aussehenden Suffixen werden abgelehnt, bevor irgendein Cookie wandert.

In der Produktion ist MOBILE_ALLOWED_ORIGINS Pflicht und muss exakte, nicht lokale HTTPS-Origins auflisten — Platzhalter werden nicht akzeptiert. Die App wird gebündelt ausgeliefert, während der Server seine Umgebung pro Anfrage liest; eine Schema- oder Origin-Änderung braucht daher sowohl einen neuen App-Build als auch ein Server-Deployment. Eine Änderung nur auf einer Seite lässt Übergaben geschlossen fehlschlagen.

Die anderen passwortlosen Methoden

Derselbe Anmeldebildschirm bietet Einmalcodes per E-Mail (requestEmailOtp, dann verifyEmailOtp) sowie Social Sign-in über Apple oder Google per signIn.social mit einer callbackURL. Passkeys erscheinen, wenn AUTH_PASSKEY_ENABLED=true auf dem Server gesetzt ist; die Passkey- und Zwei-Faktor-Einrichtung eines Kontos bleibt in der Web-App unter Einstellungen → Sicherheit.

Überprüfung und Fehlerbehebung

Testen Sie auf dem vorgesehenen Build einen Callback nach Kaltstart, die Rückkehr zu einer laufenden App, ein abgebrochenes Browser-Sheet und eine abgelaufene Sitzung. Die typisierten Fehler — passkeyUnavailable, browserFailed, untrustedCallback, missingCookie, malformedCookie, cookieStoreFailed — beschreiben jeweils einen eigenen Bruch; stateMismatch bedeutet, dass die Nonce nicht zurückgekehrt ist und der Versuch korrekt abgewiesen wurde.

Wenn jede Übergabe abgelehnt wird, vergleichen Sie EXPO_PUBLIC_APP_SCHEME im ausgelieferten Build mit dem Schema des Servers und MOBILE_ALLOWED_ORIGINS — das Paar driftet auseinander, wenn eine Seite ohne die andere neu bereitgestellt wurde.

Häufige Fragen

14 Fragen

Was ist supastack?

supastack ist eine modulare Basis zum Bauen von KI-gestützten SaaS-Produkten. Sie bündelt die gemeinsame Infrastruktur, damit du dich auf die Funktionen konzentrieren kannst, die dein Produkt ausmachen.

Unterstützt es Web und Mobil?

Ja. supastack enthält Next.js- und Expo-Apps als Ausgangspunkt für Web- und Mobile-Erlebnisse.

Welche Authentifizierung ist enthalten?

Better Auth deckt E-Mail/Passwort, OTP und Social Login ab. Persönliche Workspaces werden mit dem Konto provisioniert, damit Datensätze vom ersten Tag an begrenzt sind.

Wie wird KI unterstützt?

supastack enthält konfigurierbare Multi-Anbieter-KI, Nutzungsverfolgung, Budgets und verschlüsselte Bring-your-own-key-Unterstützung.

Wie werden Abonnements gehandhabt?

Für Produkte, die auf dem Kit aufbauen, bilden Stripe-Abrechnung, Abonnements und Berechtigungen die Basis für bezahlten Zugang. Anbieter-Geheimnisse bleiben serverseitig.

Wo liegt mein produktspezifischer Code?

Produktspezifische Funktionen bleiben in einem separaten Codebase, während das Produkt die Basismodule von supastack konfiguriert und integriert.

Wie funktioniert die Preisgestaltung von supastack?

Das Kit ist ein Einmalkauf mit lebenslangen Updates: Single Stack für 249 $ — deine Wahl aus dem Next.js- (Web), Expo- (iOS & Android) oder Tauri-Repo (macOS & Windows Desktop) —, Dual Stack für 398 $ mit zwei beliebigen Repos oder Full Bundle für 399 $ mit allen drei Repos und dem vollständigen Monorepo, plus 75 $ pro zusätzlichem Entwickler-Sitz. Kein Kit-Abo. Checkout auf dieser Website liefert deinen Lizenzschlüssel per E-Mail, mit Repo-Zugang per GitHub-Einladung.

Wie begrenzen Workspaces meine Daten?

Nutzerdatensätze sind über workspaceId begrenzt. Identität, Berechtigungen, KI-Nutzung, Abrechnungsereignisse und Audit-Einträge bleiben innerhalb der persönlichen Workspace-Grenze.

Wie funktionieren Hintergrundjobs?

Trigger.dev ist die explizite Job-Laufzeit. Der JobRunner-Vertrag verspricht nur enqueue, status und cancel — Workflow-Semantik bleibt Trigger.dev-spezifisch und explizit.

Wie unterscheidet sich E-Mail von Outreach?

Transaktions-E-Mail deckt Produktabläufe wie Task-Abschluss-Hinweise ab. Cold Outreach und Kampagnen gehören zum Produkt selbst, außerhalb des E-Mail-Moduls dieses Kits.

Wie funktionieren mobile Käufe?

Mobile bietet native Käufe und Wiederherstellung über RevenueCat; dein Server prüft den Zugriff. Konfiguriere die Store-Konten und schließe Gerätetests vor der Veröffentlichung ab. Web-Abrechnung bleibt separat.

Wo liegen die KI-Anbieter-Schlüssel?

BYOK-Zugangsdaten sind verschlüsselt und bleiben serverseitig. Schlüssel werden in Logs bereinigt; Nutzung und Budgets bleiben auf Workspace-Ebene sichtbar.

Welche Zahlungsmethoden akzeptiert der Checkout?

Der von Stripe gehostete Checkout akzeptiert Karten und kann — sobald die Wallets im Stripe-Konto aktiviert sind — auch Alipay und WeChat Pay anbieten, praktisch für Käufer in China. Wallet-Autorisierungen werden asynchron bestätigt, sodass sich die Lizenzseite aktualisiert, sobald die Zahlung eingegangen ist.

Kann ich eine Rückerstattung erhalten?

Sobald du Zugriff auf das Repository hast, gehört supastack für immer dir und kann daher nicht zurückerstattet werden. Aber keine Sorge: Du erhältst den vollständigen Quellcode mit lebenslangen Updates, um unbegrenzt viele Produkte für dich oder deine Kunden zu erstellen und zu veröffentlichen. Du darfst den Code lediglich nicht weiterverkaufen oder das Repository als Starter-Kit oder Vorlage weitergeben.

DE
Design