Complete Journal auth: add passkey prompt, dev magic link, fix validation

- Add passkey prompt after magic link login (/?add-passkey=1)
- addPasskeyStart/addPasskeyFinish for existing users
- Dev mode: magic link auto-redirects (returns devLink in response)
- Fix username validation: strip invalid chars instead of HTML pattern
- Separate API routes from page routes for JSON fetch compatibility

All 10 Group 7 tasks complete.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ullrich Schäfer 2026-03-23 22:19:17 +01:00
parent 6950fd7de5
commit cc308bc17f
No known key found for this signature in database
GPG key ID: A32FF691A0F752D9
6 changed files with 157 additions and 5 deletions

View file

@ -68,7 +68,7 @@
- [x] 7.3 Implement passkey login flow (WebAuthn get → session created)
- [x] 7.4 Implement magic link request (POST /api/auth/magic-link → send email with token)
- [x] 7.5 Implement magic link verification (GET /auth/verify?token=... → session created)
- [ ] 7.6 Implement "Add passkey" prompt after magic link login on new device
- [x] 7.6 Implement "Add passkey" prompt after magic link login on new device
- [x] 7.7 Implement session middleware (validate cookie, load user in loader context)
- [x] 7.8 Implement logout (POST /api/auth/logout, invalidate session)
- [x] 7.9 Implement user profile page (GET /users/:username)