/** * Déconnexion centralisée — déclenchée directement par un handler (ex: lien du * footer de la sidebar), sans passer par une page de redirection dédiée. * * `authStore.logout()` invalide la session serveur (POST /api/logout), vide * l'état auth, et appelle `clearSession()` qui notifie tous les composables * singletons (sidebar, modules, currentSite, auditLog, categoriesAdmin) via * `onAuthSessionCleared` — leurs états sont donc réinitialisés ici sans aucun * reset manuel. La redirection vers `/login` (inévitable : un utilisateur * déconnecté ne peut pas rester sur une page protégée) est la seule navigation. */ export function useLogout() { const auth = useAuthStore() async function logout(): Promise { await auth.logout() await navigateTo('/login') } return { logout } }