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
@@ -253,25 +253,25 @@
<div class="tool-grid">
<div class="tool-card">
<h3>🚁 Drone Inspection Systems</h3>
<h3><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M8 2V6M4 4H12" stroke="#666" stroke-width="1.5" stroke-linecap="round"/><path d="M2 8H6L8 6L10 8H14" stroke="#666" stroke-width="1.5" stroke-linejoin="round"/><path d="M6 8V12H10V8" stroke="#666" stroke-width="1.5"/></svg> Drone Inspection Systems</h3>
<p>Aerial platforms with 4K/8K cameras, thermal sensors, and LiDAR. Best for bridges, towers, and large structures where access is difficult.</p>
<span class="tool-tag tag-drone">Aerial</span>
<span class="tool-tag tag-traditional">High Cost</span>
</div>
<div class="tool-card">
<h3>📱 Mobile Field Apps</h3>
<h3> Mobile Field Apps</h3>
<p>Smartphone and tablet apps for structured data collection, GPS tagging, and photo documentation. Works offline in remote locations.</p>
<span class="tool-tag tag-mobile">Ground</span>
<span class="tool-tag tag-mobile">Offline</span>
</div>
<div class="tool-card">
<h3>🤖 AI Analysis Platforms</h3>
<h3> AI Analysis Platforms</h3>
<p>Machine learning systems that process visual data to detect cracks, corrosion, and deformation automatically. Continuously improving accuracy.</p>
<span class="tool-tag tag-ai">Automated</span>
<span class="tool-tag tag-ai">Scalable</span>
</div>
<div class="tool-card">
<h3>🔧 Traditional Methods</h3>
<h3> Traditional Methods</h3>
<p>Manual inspection, scaffolding, binoculars, and physical measurement. Still required for critical structural assessments and regulatory compliance.</p>
<span class="tool-tag tag-traditional">Manual</span>
<span class="tool-tag tag-traditional">Compliance</span>
@@ -304,7 +304,7 @@
<td class="check">92-95%</td>
<td class="check">Fast</td>
<td>Data-volume</td>
<td class="check"> Native</td>
<td class="check"><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> Native</td>
</tr>
<tr>
<td>Drone + Manual Review</td>
@@ -312,7 +312,7 @@
<td>75-85%</td>
<td>Medium</td>
<td>$15k-50k</td>
<td class="cross"> None</td>
<td class="cross"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> None</td>
</tr>
<tr>
<td>Mobile App Only</td>
@@ -320,7 +320,7 @@
<td>60-70%</td>
<td class="check">Fast</td>
<td>Low</td>
<td class="cross"> Limited</td>
<td class="cross"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> Limited</td>
</tr>
<tr>
<td>AI + Drone (3rd party)</td>
@@ -328,7 +328,7 @@
<td>80-90%</td>
<td>Medium</td>
<td>$25k-80k</td>
<td class="check"> Add-on</td>
<td class="check"><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> Add-on</td>
</tr>
<tr>
<td>Traditional Scaffolding</td>
@@ -336,7 +336,7 @@
<td class="check">90-95%</td>
<td class="cross">Slow</td>
<td class="cross">$50k-200k</td>
<td class="cross"> None</td>
<td class="cross"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> None</td>
</tr>
<tr>
<td>Thermal Imaging</td>
@@ -344,7 +344,7 @@
<td>70-80%</td>
<td>Medium</td>
<td>$10k-30k</td>
<td class="cross"> Limited</td>
<td class="cross"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M4 4L12 12M12 4L4 12" stroke="#ef4444" stroke-width="2" stroke-linecap="round"/></svg> Limited</td>
</tr>
</tbody>
</table>