import keycloak from "./keycloak"; /** * Initialise Keycloak sans forcer le login. * - onLoad: "check-sso" => ne redirige pas si user non loggé */ export function initAuth() { return keycloak.init({ onLoad: "check-sso", checkLoginIframe: false, }); } /** * Appelle une action qui nécessite d'être authentifié. * Si non loggé => ouvre la page de login Keycloak, puis revient sur la même page. */ export function requireAuth(action) { if (keycloak.authenticated) { return action(); } keycloak.login({ redirectUri: window.location.href, }); } /** * Retourne le token JWT actuel (ou null) */ export function getToken() { return keycloak.token || null; } /** * Retourne le username depuis le token (si présent) */ export function getUsername() { const profile = keycloak.tokenParsed || {}; return ( profile.preferred_username || profile.email || profile.name || null ); } /** * Logout et revient sur la même page. */ export function logout() { keycloak.logout({ redirectUri: window.location.origin, }); } export default keycloak;