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(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; };