Skip to content

Superviseur — Frontend v1.0.0


Superviseur — Frontend / features/auth/auth.store / useAuthStore

Variable: useAuthStore ​

ts
const useAuthStore: StoreDefinition<"auth", Pick<{
  user: Ref<
     | {
     id: string;
     username: string;
     role: string;
     avatar?: string;
     language: string;
   }
     | null, 
     | User
     | {
     id: string;
     username: string;
     role: string;
     avatar?: string;
     language: string;
   }
    | null>;
  isAuthenticated: ComputedRef<boolean>;
  isAdmin: ComputedRef<boolean>;
  isSuperAdmin: ComputedRef<boolean>;
  isTokenExpired: ComputedRef<boolean>;
  setUser: (userData) => void;
  login: (credentials) => Promise<LoginResult>;
  logout: () => void;
  refreshAccessToken: () => Promise<boolean>;
  initialize: () => void;
  updateAvatar: (avatar) => void;
  resetAvatar: () => void;
  effectiveAvatar: ComputedRef<string | undefined>;
  hydrateUser: () => Promise<void>;
}, "user">, Pick<{
  user: Ref<
     | {
     id: string;
     username: string;
     role: string;
     avatar?: string;
     language: string;
   }
     | null, 
     | User
     | {
     id: string;
     username: string;
     role: string;
     avatar?: string;
     language: string;
   }
    | null>;
  isAuthenticated: ComputedRef<boolean>;
  isAdmin: ComputedRef<boolean>;
  isSuperAdmin: ComputedRef<boolean>;
  isTokenExpired: ComputedRef<boolean>;
  setUser: (userData) => void;
  login: (credentials) => Promise<LoginResult>;
  logout: () => void;
  refreshAccessToken: () => Promise<boolean>;
  initialize: () => void;
  updateAvatar: (avatar) => void;
  resetAvatar: () => void;
  effectiveAvatar: ComputedRef<string | undefined>;
  hydrateUser: () => Promise<void>;
}, 
  | "isAuthenticated"
  | "isAdmin"
  | "isSuperAdmin"
  | "isTokenExpired"
  | "effectiveAvatar">, Pick<{
  user: Ref<
     | {
     id: string;
     username: string;
     role: string;
     avatar?: string;
     language: string;
   }
     | null, 
     | User
     | {
     id: string;
     username: string;
     role: string;
     avatar?: string;
     language: string;
   }
    | null>;
  isAuthenticated: ComputedRef<boolean>;
  isAdmin: ComputedRef<boolean>;
  isSuperAdmin: ComputedRef<boolean>;
  isTokenExpired: ComputedRef<boolean>;
  setUser: (userData) => void;
  login: (credentials) => Promise<LoginResult>;
  logout: () => void;
  refreshAccessToken: () => Promise<boolean>;
  initialize: () => void;
  updateAvatar: (avatar) => void;
  resetAvatar: () => void;
  effectiveAvatar: ComputedRef<string | undefined>;
  hydrateUser: () => Promise<void>;
}, 
  | "login"
  | "logout"
  | "initialize"
  | "setUser"
  | "refreshAccessToken"
  | "updateAvatar"
  | "resetAvatar"
| "hydrateUser">>;

Défini dans: features/auth/auth.store.ts:38

Store d'authentification. Conserve l'utilisateur courant (persisté en sessionStorage), expose les indicateurs de rôle (isAuthenticated, isAdmin, isSuperAdmin) et l'avatar effectif, et pilote le cycle de session : connexion, déconnexion, rafraîchissement du jeton, hydratation depuis l'API. La gestion des jetons expirés est déléguée à l'intercepteur HTTP (réponses 401).

Documentation Technique