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
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("MemoryRouter");
import { MemoryRouter } from "../esm/react-router.js";
export default MemoryRouter;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("Prompt");
import { Prompt } from "../esm/react-router.js";
export default Prompt;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("Redirect");
import { Redirect } from "../esm/react-router.js";
export default Redirect;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("Route");
import { Route } from "../esm/react-router.js";
export default Route;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("Router");
import { Router } from "../esm/react-router.js";
export default Router;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("StaticRouter");
import { StaticRouter } from "../esm/react-router.js";
export default StaticRouter;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("Switch");
import { Switch } from "../esm/react-router.js";
export default Switch;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("generatePath");
import { generatePath } from "../esm/react-router.js";
export default generatePath;
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("matchPath");
import { matchPath } from "../esm/react-router.js";
export default matchPath;
+34
View File
@@ -0,0 +1,34 @@
/* eslint-disable prefer-arrow-callback, no-empty */
var printWarning = function() {};
if (process.env.NODE_ENV !== "production") {
printWarning = function(format, subs) {
var index = 0;
var message =
"Warning: " +
(subs.length > 0
? format.replace(/%s/g, function() {
return subs[index++];
})
: format);
if (typeof console !== "undefined") {
console.error(message);
}
try {
// --- Welcome to debugging React Router ---
// This error was thrown as a convenience so that you can use the
// stack trace to find the callsite that triggered this warning.
throw new Error(message);
} catch (e) {}
};
}
export default function(member) {
printWarning(
'Please use `import { %s } from "react-router"` instead of `import %s from "react-router/es/%s"`. ' +
"Support for the latter will be removed in the next major release.",
[member, member]
);
}
+5
View File
@@ -0,0 +1,5 @@
import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js";
warnAboutDeprecatedESMImport("withRouter");
import { withRouter } from "../esm/react-router.js";
export default withRouter;