Files
boc/academy-process-landvex.svg
T
Bernt 6989a98d75 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
2026-07-07 07:11:50 +00:00

69 lines
3.0 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 200">
<defs>
<style>
.step-circle { fill: #0A1628; stroke: #1A3A5C; stroke-width: 2 }
.step-icon { fill: #00D4AA }
.step-text { fill: #8BA4BE; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 14px; font-weight: 600 }
.arrow { fill: none; stroke: #1A3A5C; stroke-width: 2; stroke-linecap: round }
.arrow-head { fill: #1A3A5C }
</style>
</defs>
<!-- Background -->
<rect width="800" height="200" fill="#0D1F3C" rx="16"/>
<!-- Step 1: Capture -->
<g transform="translate(100, 100)">
<circle cx="0" cy="0" r="40" class="step-circle"/>
<!-- Camera icon -->
<path d="M-12,-8 L-8,-12 L8,-12 L12,-8 L16,-8 L16,8 L-16,8 L-16,-8 Z" fill="#00D4AA" transform="scale(0.8)"/>
<circle cx="0" cy="-2" r="6" fill="none" stroke="#00D4AA" stroke-width="2" transform="scale(0.8)"/>
<text x="0" y="65" text-anchor="middle" class="step-text">Fotografera</text>
</g>
<!-- Arrow 1 -->
<g transform="translate(200, 100)">
<line x1="0" y1="0" x2="60" y2="0" class="arrow"/>
<polygon points="60,0 50,-6 50,6" class="arrow-head"/>
</g>
<!-- Step 2: AI Review -->
<g transform="translate(320, 100)">
<circle cx="0" cy="0" r="40" class="step-circle"/>
<!-- AI/Brain icon -->
<path d="M-10,-12 Q-10,-18 0,-18 Q10,-18 10,-12 L10,0 Q10,6 0,6 Q-10,6 -10,0 Z" fill="none" stroke="#00D4AA" stroke-width="2" transform="scale(0.8)"/>
<circle cx="-4" cy="-8" r="2" fill="#00D4AA" transform="scale(0.8)"/>
<circle cx="4" cy="-8" r="2" fill="#00D4AA" transform="scale(0.8)"/>
<path d="M-6,2 Q0,8 6,2" fill="none" stroke="#00D4AA" stroke-width="2" transform="scale(0.8)"/>
<text x="0" y="65" text-anchor="middle" class="step-text">AI-granskning</text>
</g>
<!-- Arrow 2 -->
<g transform="translate(420, 100)">
<line x1="0" y1="0" x2="60" y2="0" class="arrow"/>
<polygon points="60,0 50,-6 50,6" class="arrow-head"/>
</g>
<!-- Step 3: Approval -->
<g transform="translate(540, 100)">
<circle cx="0" cy="0" r="40" class="step-circle"/>
<!-- Checkmark icon -->
<path d="M-12,0 L-4,8 L12,-8" fill="none" stroke="#00D4AA" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" transform="scale(0.8)"/>
<text x="0" y="65" text-anchor="middle" class="step-text">Godkännande</text>
</g>
<!-- Arrow 3 -->
<g transform="translate(640, 100)">
<line x1="0" y1="0" x2="60" y2="0" class="arrow"/>
<polygon points="60,0 50,-6 50,6" class="arrow-head"/>
</g>
<!-- Step 4: Payout -->
<g transform="translate(760, 100)">
<circle cx="0" cy="0" r="40" class="step-circle"/>
<!-- Money/Coin icon -->
<circle cx="0" cy="0" r="14" fill="none" stroke="#00D4AA" stroke-width="2" transform="scale(0.8)"/>
<text x="0" y="5" text-anchor="middle" fill="#00D4AA" font-family="-apple-system, sans-serif" font-size="16" font-weight="700" transform="scale(0.8)">$</text>
<text x="0" y="65" text-anchor="middle" class="step-text">Utbetalning</text>
</g>
</svg>