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
+14 -14
View File
@@ -22,7 +22,7 @@
p { margin: 8px 0; }
ul { margin: 8px 0; padding-left: 24px; }
li { margin: 4px 0; }
.confidential { background: #fff3cd; border: 1px solid #ffc107; padding: 8px 14px; border-radius: 4px; font-size: 10pt; margin-bottom: 20px; }
.confidential { background: #fff3cd; border: 1px solid #ffc107; padding: 8px 14px; border-radius: var(--radius-sm); font-size: 10pt; margin-bottom: 20px; }
.sign-block { margin-top: 40px; border-top: 1px solid #ccc; padding-top: 20px; }
@media print {
body { margin: 20px; padding: 0 20px; }
@@ -82,19 +82,19 @@ AWS-infrastrukturen (eu-north-1, Stockholm) körde aktivt dygnet runt under hela
<p>Samtliga poster är dokumenterade. Det finns <strong>inga odokumenterade kontantposter</strong>.</p>
<table>
<tr><th>Kategori</th><th>Belopp (SEK)</th><th>Poster</th><th>Verifikation</th></tr>
<tr><td>AI/API-infrastruktur (Anthropic, OpenAI, Paddle)</td><td>83 278</td><td>50</td><td>Digitala fakturor </td></tr>
<tr><td>Boende, långtid (Airbnb, Phuket)</td><td>96 009</td><td>5</td><td>Bokningsbekräftelser </td></tr>
<tr><td>Hotell, affärsresor (BKK/MAR/SZX)</td><td>62 182</td><td>5</td><td>Hotellkvitton </td></tr>
<tr><td>Flyg (Thai Airways ARN→BKK)</td><td>19 455</td><td>1</td><td>E-biljett </td></tr>
<tr><td>AI-röst/TTS (ElevenLabs)</td><td>16 549</td><td>6</td><td>Digitala fakturor </td></tr>
<tr><td>Domäner (Loopia)</td><td>10 555</td><td>16</td><td>Digitala fakturor </td></tr>
<tr><td>CRM-verktyg (Apollo.io)</td><td>5 444</td><td>1</td><td>Digital faktura </td></tr>
<tr><td>Kommunikation (46elks SMS/API)</td><td>3 750</td><td>1</td><td>Digital faktura </td></tr>
<tr><td>UI-verktyg (Lovable)</td><td>4 295</td><td>4</td><td>Digitala fakturor </td></tr>
<tr><td>E-post (Resend)</td><td>619</td><td>3</td><td>Digitala fakturor </td></tr>
<tr><td>E-handel (Shopify)</td><td>828</td><td>9</td><td>Digitala fakturor </td></tr>
<tr><td>Mat och representation</td><td>5 351</td><td>6</td><td>Kvitton </td></tr>
<tr><td><strong>Lön VD (Erik Svensson) — se avsnitt 5</strong></td><td><strong>70 993</strong></td><td><strong>1</strong></td><td><strong>Löneunderlag </strong></td></tr>
<tr><td>AI/API-infrastruktur (Anthropic, OpenAI, Paddle)</td><td>83 278</td><td>50</td><td>Digitala fakturor <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>Boende, långtid (Airbnb, Phuket)</td><td>96 009</td><td>5</td><td>Bokningsbekräftelser <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>Hotell, affärsresor (BKK/MAR/SZX)</td><td>62 182</td><td>5</td><td>Hotellkvitton <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>Flyg (Thai Airways ARN→BKK)</td><td>19 455</td><td>1</td><td>E-biljett <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>AI-röst/TTS (ElevenLabs)</td><td>16 549</td><td>6</td><td>Digitala fakturor <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>Domäner (Loopia)</td><td>10 555</td><td>16</td><td>Digitala fakturor <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>CRM-verktyg (Apollo.io)</td><td>5 444</td><td>1</td><td>Digital faktura <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>Kommunikation (46elks SMS/API)</td><td>3 750</td><td>1</td><td>Digital faktura <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>UI-verktyg (Lovable)</td><td>4 295</td><td>4</td><td>Digitala fakturor <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>E-post (Resend)</td><td>619</td><td>3</td><td>Digitala fakturor <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>E-handel (Shopify)</td><td>828</td><td>9</td><td>Digitala fakturor <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td>Mat och representation</td><td>5 351</td><td>6</td><td>Kvitton <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></td></tr>
<tr><td><strong>Lön VD (Erik Svensson) — se avsnitt 5</strong></td><td><strong>70 993</strong></td><td><strong>1</strong></td><td><strong>Löneunderlag <svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8L6.5 11.5L13 4.5" stroke="#22c55e" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></strong></td></tr>
<tr style="background:#1a1a1a;"><td><strong>TOTALT</strong></td><td><strong>379 308</strong></td><td><strong>108</strong></td><td><strong>Fullt dokumenterat</strong></td></tr>
</table>
<p class="meta">Not: Totalt KYC-belopp 399 941,60 kr inkluderar även löner till övrig personal samt skatteinbetalningar redovisade i avsnitt 6.</p>