import React, { useEffect, useState } from "react"; import { userManager } from "./auth/userManager"; /** * Responsável por: * - tratar /callback (retorno do Authentik) * - garantir que o usuário esteja logado antes de renderizar o app */ export default function AuthBootstrap({ children }) { const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { (async () => { try { const { pathname, search } = window.location; if (pathname === "/callback") { // Finaliza o fluxo OIDC await userManager.signinRedirectCallback(); // Volta para home (mantém a URL limpa) window.history.replaceState({}, document.title, "/"); setLoading(false); return; } const user = await userManager.getUser(); if (!user || user.expired) { await userManager.signinRedirect(); return; } setLoading(false); } catch (e) { setError(e?.message ?? String(e)); setLoading(false); } })(); }, []); if (loading) { return (
{error}