sw-fe/src/auth/authUtils.js

58 lines
1.1 KiB
JavaScript

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;