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
Executable
+41
View File
@@ -0,0 +1,41 @@
#!/bin/bash
# Fixa Landvex-loggan på alla sidor så den är konsekvent
unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
export AWS_DEFAULT_REGION=eu-north-1
BUCKET="landvex-prod"
# Sidor att fixa
PAGES="intelligence.html goteborg-intelligence.html stockholm-intelligence.html malmo-intelligence.html uppsala-intelligence.html"
for page in $PAGES; do
echo "=== Fixar $page ==="
# Ladda ner
aws s3 cp s3://$BUCKET/$page /tmp/fix-$page 2>/dev/null || continue
# Kolla om sidan har gammal logga-stil
if grep -q 'id="map-logo"' /tmp/fix-$page || grep -q 'class="nav-logo"' /tmp/fix-$page; then
# Ersätt CSS för loggan
sed -i 's/#map-logo{font-size:11px;font-weight:800;letter-spacing:-0.3px;color:var(--text);text-decoration:none}/#map-logo{font-size:15px;font-weight:800;letter-spacing:-0.4px;color:var(--text);text-decoration:none}/g' /tmp/fix-$page
sed -i 's/#map-logo{font-size:11px;font-weight:800;color:var(--text);text-decoration:none}/#map-logo{font-size:15px;font-weight:800;letter-spacing:-0.4px;color:var(--text);text-decoration:none}/g' /tmp/fix-$page
# Ersätt HTML för loggan (ta bort <em> runt "vex")
sed -i 's/Land<em>vex<\/em>/Landvex/g' /tmp/fix-$page
sed -i 's/Land<em>ve<\/em>x/Landvex/g' /tmp/fix-$page
# Ladda upp
aws s3 cp /tmp/fix-$page s3://$BUCKET/$page --content-type "text/html" --cache-control "max-age=3600" 2>&1 | tail -1
echo " ✅ Fixad"
else
echo " ️ Ingen logga hittad"
fi
done
echo "=== Alla sidor fixade ==="
# Invalidera CloudFront
aws cloudfront create-invalidation --distribution-id E2M3J95HLUR89H --paths "/intelligence.html" "/goteborg-intelligence.html" "/stockholm-intelligence.html" "/malmo-intelligence.html" "/uppsala-intelligence.html" --output text --query 'Invalidation.Id' 2>&1