- Shipped
- March 29, 2026 at 4:29 AM UTC
- Author
- Kamo
- Commit
- 8386a54
The OTK flow now: 1. Validates OTK via sidecar → gets session (memberId, displayName, etc.) 2. Saves display name to localStorage 3. Calls /api/auth/jwt to generate a signed Prosody JWT with moderator=true 4. Redirects from ?otk=xxx to ?jwt=TOKEN (Meet's native JWT support) 5. On the redirected page load, locks the display name field This fixes: 'Waiting for moderator' (user now authenticates as moderator), 'Log-in' button showing (JWT proves identity), and name not pre-filled (set in localStorage before redirect).