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
+4
View File
@@ -0,0 +1,4 @@
[AAMOS Command Center] http://0.0.0.0:7071
[AAMOS Command Center] Ledger proxy: localhost:3250
[AAMOS Command Center] quiXzoom proxy: localhost:8080
[AAMOS Command Center] Gateway proxy: localhost:8081
+44
View File
@@ -0,0 +1,44 @@
import express from 'express';
import { createProxyMiddleware } from 'http-proxy-middleware';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const app = express();
const PORT = 7071;
// Proxy till aamos-ledger (3250)
app.use('/api/ledger', createProxyMiddleware({
target: 'http://localhost:3250',
changeOrigin: true,
pathRewrite: { '^/api/ledger': '' }
}));
// Proxy till quixzoom (8080)
app.use('/api/quixzoom', createProxyMiddleware({
target: 'http://localhost:8080',
changeOrigin: true,
pathRewrite: { '^/api/quixzoom': '' }
}));
// Proxy till landvex-api (8081)
app.use('/api/gateway', createProxyMiddleware({
target: 'http://localhost:8081',
changeOrigin: true,
pathRewrite: { '^/api/gateway': '' }
}));
// Static files
app.use(express.static(__dirname));
// Health check
app.get('/health', (req, res) => {
res.json({ ok: true, service: 'aamos-command-center', port: PORT });
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`[AAMOS Command Center] http://0.0.0.0:${PORT}`);
console.log(`[AAMOS Command Center] Ledger proxy: localhost:3250`);
console.log(`[AAMOS Command Center] quiXzoom proxy: localhost:8080`);
console.log(`[AAMOS Command Center] Gateway proxy: localhost:8081`);
});