feat: Passwordless cross-device authentication

- Arkitektur: docs/auth/passwordless-architecture.md
- Backend: iom/quixzoom-auth-service/ (FastAPI + Redis)
- Webb: quixzoom-market-pages/se/login/ (QR-kod + polling)
- App: iom/quixzoom-app/src/features/auth/ (push + deep links)

Flöde: QR-kod → app-godkännande → webb-inloggad
This commit is contained in:
Bernt
2026-07-07 07:11:50 +00:00
parent 4aa984ad74
commit 6989a98d75
61843 changed files with 5491611 additions and 872231 deletions
+19 -4
View File
@@ -1,4 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512" font-family="Poppins,'DejaVu Sans',sans-serif">
<defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#8E6CFF"/><stop offset="1" stop-color="#6235D9"/></linearGradient></defs>
<rect width="512" height="512" rx="114" fill="url(#g)"/>
<text x="256" y="364" text-anchor="middle" font-weight="800" font-size="300" fill="#F7F3EE">X</text></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<defs>
<linearGradient id="qz-bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0A0A0A"/>
<stop offset="100%" stop-color="#1A1A1A"/>
</linearGradient>
<linearGradient id="qz-accent" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0066FF"/>
<stop offset="100%" stop-color="#0052CC"/>
</linearGradient>
</defs>
<!-- Background -->
<rect width="512" height="512" rx="128" fill="url(#qz-bg)"/>
<!-- Camera lens shape -->
<circle cx="256" cy="256" r="160" fill="none" stroke="url(#qz-accent)" stroke-width="32"/>
<circle cx="256" cy="256" r="80" fill="url(#qz-accent)"/>
<!-- QuiXzoom dot -->
<circle cx="360" cy="152" r="24" fill="#FF3366"/>
</svg>

Before

Width:  |  Height:  |  Size: 458 B

After

Width:  |  Height:  |  Size: 807 B