Files
projet_gestion_commande/frontend-admin/src/auth/jwtUtils.ts
T
2026-02-07 22:33:02 +01:00

37 lines
845 B
TypeScript

import { jwtDecode } from 'jwt-decode';
export interface JWTPayload {
client_id?: number;
user_id?: number;
username: string;
role: string;
session_id: string;
iat: number;
exp: number;
iss: string;
}
export const decodeToken = (token: string): JWTPayload | null => {
try {
return jwtDecode<JWTPayload>(token);
} catch {
return null;
}
};
export const extractUsernameFromToken = (token: string): string | null => {
const payload = decodeToken(token);
return payload?.username ?? null;
};
export const extractRoleFromToken = (token: string): string | null => {
const payload = decodeToken(token);
return payload?.role ?? null;
};
export const isTokenExpired = (token: string): boolean => {
const payload = decodeToken(token);
if (!payload) return true;
return Date.now() >= payload.exp * 1000;
};