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
@@ -62,7 +62,7 @@ footer{background:#0a0a0a;color:rgba(255,255,255,0.5);padding:40px 24px;text-ali
<!-- Alert Banner -->
<div class="alert-banner">
<div class="alert-icon">⚠️</div>
<div class="alert-icon"><svg width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M10 3L17 17H3L10 3Z" stroke="#f59e0b" stroke-width="2"/><path d="M10 8V12M10 14V14.5" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/></svg></div>
<div>
<div class="alert-title">Contradiction Alert: Infrastructure Degrading</div>
<div class="alert-text">Physical infrastructure score dropped 16 points (72→56) while commercial vitality remains high (85). Cannabis shop, money exchanges, and massage parlors operate under chaotic wire canopy. Institutional enforcement gap widening.</div>
@@ -62,7 +62,7 @@ footer{background:#0a0a0a;color:rgba(255,255,255,0.5);padding:40px 24px;text-ali
<!-- Alert Banner -->
<div class="alert-banner">
<div class="alert-icon">⚠️</div>
<div class="alert-icon"><svg width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M10 3L17 17H3L10 3Z" stroke="#f59e0b" stroke-width="2"/><path d="M10 8V12M10 14V14.5" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/></svg></div>
<div>
<div class="alert-title">Contradiction Alert: Infrastructure Degrading</div>
<div class="alert-text">Physical infrastructure score dropped 14 points (72→58) while commercial vitality remains high (85). Institutional enforcement gap widening.</div>
@@ -62,7 +62,7 @@ footer{background:#0a0a0a;color:rgba(255,255,255,0.5);padding:40px 24px;text-ali
<!-- Alert Banner -->
<div class="alert-banner">
<div class="alert-icon">⚠️</div>
<div class="alert-icon"><svg width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M10 3L17 17H3L10 3Z" stroke="#f59e0b" stroke-width="2"/><path d="M10 8V12M10 14V14.5" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/></svg></div>
<div>
<div class="alert-title">Contradiction Alert: Infrastructure Degrading</div>
<div class="alert-text">Physical infrastructure score dropped 14 points (72→58) while commercial vitality remains high (85). Institutional enforcement gap widening.</div>
@@ -62,7 +62,7 @@ footer{background:#0a0a0a;color:rgba(255,255,255,0.5);padding:40px 24px;text-ali
<!-- Alert Banner -->
<div class="alert-banner">
<div class="alert-icon">⚠️</div>
<div class="alert-icon"><svg width="20" height="20" viewBox="0 0 20 20" fill="none"><path d="M10 3L17 17H3L10 3Z" stroke="#f59e0b" stroke-width="2"/><path d="M10 8V12M10 14V14.5" stroke="#f59e0b" stroke-width="2" stroke-linecap="round"/></svg></div>
<div>
<div class="alert-title">Contradiction Alert: Infrastructure Degrading</div>
<div class="alert-text">Physical infrastructure score dropped 14 points (72→58) while commercial vitality remains high (85). Institutional enforcement gap widening.</div>