24 lines
545 B
TypeScript
24 lines
545 B
TypeScript
// utils/jwt.ts
|
|
import { jwtDecode } from 'jwt-decode';
|
|
|
|
export interface TokenPayload {
|
|
userId: string;
|
|
email: string;
|
|
role: string[];
|
|
exp: number;
|
|
}
|
|
|
|
export function getUserFromToken(token: string): TokenPayload | null {
|
|
try {
|
|
const decoded = jwtDecode<TokenPayload>(token);
|
|
if (decoded.exp && decoded.exp < Date.now() / 1000) {
|
|
console.warn("Token ist abgelaufen");
|
|
return null;
|
|
}
|
|
return decoded;
|
|
} catch (error) {
|
|
console.error("Fehler beim Decodieren des Tokens:", error);
|
|
return null;
|
|
}
|
|
}
|