• v0.2.0 8b9d916265

    feat: implement authentication flow

    fabi released this 2026-03-31 19:44:03 +00:00 | 42 commits to main since this release

    Backend:

    • AppConfig, AppError, AppState modules for shared infrastructure
    • JWT creation/verification with HS256 (jsonwebtoken crate)
    • Session management: SHA-256 token hashing, DB-backed sessions
    • Auth middleware: AuthUser, RequireHost, RequireAdmin extractors
    • POST /api/v1/join: name-only registration, 4-digit PIN + bcrypt hash
    • POST /api/v1/recover: PIN-based recovery with 3-attempt lockout (15 min)
    • POST /api/v1/admin/login: bcrypt password verification
    • DELETE /api/v1/session: logout (session invalidation)
    • Migration 006: user PIN lockout columns (failed_pin_attempts, pin_locked_until)
    • Models: Event, User (with role enum), Session with all CRUD methods

    Frontend:

    • api.ts: typed fetch wrapper with automatic Bearer token injection
    • auth.ts: JWT/PIN localStorage management with Svelte store
    • /join: name entry form with PIN display modal and copy button
    • /recover: name + PIN recovery form with saved PIN pre-fill
    • /feed: placeholder gallery page with logout
    • Root layout: auth initialization on mount
    • Root page: redirect to /join or /feed based on auth state

    All responses use German language strings as specified.

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    Downloads