Swift-Package-Plattform für alle nativen mana-e.V.-Apps. ManaCore (Auth, Transport) + ManaTokens (Vereins-Design). SOT: mana/docs/MANA_SWIFT.md
Mini-Sprint A des 2FA-Vollausbaus. Apps mit aktivem TOTP-2FA können
sich nativ einloggen. Komplett additiv.
AuthClient.Status um .twoFactorRequired(token, methods, email)
erweitert. signIn() erkennt automatisch den Server-Pfad
{twoFactorRequired: true, ...} und routet zum neuen Status.
Neue Methoden in AuthClient+Account:
- verifyTotp(code:trustDevice:) — 6-stellige Codes aus Authenticator-
App. Bei Erfolg .signedIn, bei Fehler bleibt Status im Challenge
(User kann retry mit anderem Code).
- verifyBackupCode(code:trustDevice:) — einmalige Codes als Fallback.
Wire-Format: Client schickt {code, twoFactorToken, trustDevice} an
/api/v1/auth/two-factor/verify-{totp,backup-code}. Server (mana-auth)
re-injectet den twoFactorToken als better-auth.two_factor-Cookie und
delegiert an Better Auths Plugin.
5 neue Tests, 59/59 grün.
Setzt mana-auth-Server mit den entsprechenden Custom-Endpoints
voraus — siehe gleichzeitiger Commit im mana-Repo.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| Sources | ||
| Tests | ||
| .gitignore | ||
| .swiftformat | ||
| .swiftlint.yml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| Package.swift | ||
| README.md | ||
mana-swift-core
Swift-Package-Plattform für alle nativen mana-e.V.-Apps.
Geteilter Code zwischen memoro-native, cards-native, nutriphi-native
und allen weiteren ev.mana.*-Apps. Analog zu @mana/* aus Verdaccio
für die Web-Plattform.
Products
- ManaCore — Auth (mana-auth-Login, JWT-Refresh, Keychain), Transport (URLSession-Wrapper mit 401-Retry).
- ManaTokens — Verein-Designwerte: Farben, Spacings, Typography,
Radius, SF-Symbol-Aliases. Spiegelt
mana/docs/THEMING.md.
Verwendung
Im project.yml einer nativen App:
packages:
ManaSwiftCore:
url: https://git.mana.how/till/mana-swift-core
from: 1.0.0
targets:
YourApp:
dependencies:
- package: ManaSwiftCore
product: ManaCore
- package: ManaSwiftCore
product: ManaTokens
Während Entwicklung lokal:
packages:
ManaSwiftCore:
path: ../mana-swift-core
Konventionen
Siehe CLAUDE.md für die vollständigen Regeln.
Übergeordneter Plan: mana/docs/MANA_SWIFT.md.
Lokal entwickeln
swift build
swift test
iOS + macOS-Targets, Swift 6 strict concurrency, keine externen Dependencies.