Replace X-User-Id header auth with Azure AD JWT token validation. Backend validates tokens via JWKS, frontend uses MSAL for login/token acquisition. Adds logout button, 401 handling, and configurable AZURE_AUTH_ENABLED toggle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1 KiB
TypeScript
37 lines
1 KiB
TypeScript
import { StrictMode } from "react";
|
|
import { createRoot } from "react-dom/client";
|
|
import { BrowserRouter } from "react-router-dom";
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
import { MsalProvider } from "@azure/msal-react";
|
|
import { msalInstance } from "./auth/msalConfig";
|
|
import App from "./App";
|
|
import "./globals.css";
|
|
|
|
const queryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
retry: 1,
|
|
refetchOnWindowFocus: false,
|
|
staleTime: 30_000,
|
|
},
|
|
},
|
|
});
|
|
|
|
// Initialize MSAL — handle redirect promise
|
|
msalInstance.initialize().then(() => {
|
|
msalInstance.handleRedirectPromise().catch((e) => {
|
|
console.error("[MSAL] Redirect error:", e);
|
|
});
|
|
|
|
createRoot(document.getElementById("root")!).render(
|
|
<StrictMode>
|
|
<MsalProvider instance={msalInstance}>
|
|
<QueryClientProvider client={queryClient}>
|
|
<BrowserRouter>
|
|
<App />
|
|
</BrowserRouter>
|
|
</QueryClientProvider>
|
|
</MsalProvider>
|
|
</StrictMode>,
|
|
);
|
|
});
|