Files
List_ultimate/app/plugins/auth.ts
2026-02-26 21:29:34 +01:00

30 lines
1.0 KiB
TypeScript

// Faire vérifier le token présent dans le cookie
// à WP via Pinia au 1er chargement de l'app.
import type { User } from "~/types/auth.ts"
export default defineNuxtPlugin(async () => {
const auth = useAuthStore()
const config = useRuntimeConfig()
// On n'exécute la vérification que s'il y a un token
// et qu'on n'a pas encore chargé l'utilisateur (ex: au refresh)
if (auth.token && !auth.user) {
try {
// On appelle le endpoint WP qui renvoie l'utilisateur connecté
// Note: l'URL dépend du plugin perso auth
const data = await $fetch<User>(`${config.public.apiBase}/users/me`, {
headers: {
Authorization: `Bearer ${auth.token}`
}
})
// Si ça marche, on met à jour l'user dans Pinia
auth.user = data
} catch (error) {
// Si le token est expiré ou invalide, WP renvoie une erreur
// On vide tout pour forcer la reconnexion
console.error("Session expirée ou token invalide")
auth.logout()
}
}
})