import jwt from 'jsonwebtoken'; import { User, Session, Role } from '@/types'; const JWT_SECRET = process.env.JWT_SECRET || 'dev-secret-change-in-production'; const JWT_EXPIRES_IN = '7d'; export interface JWTPayload { userId: string; email: string; role: Role; } export function signToken(payload: JWTPayload): string { return jwt.sign(payload, JWT_SECRET, { expiresIn: JWT_EXPIRES_IN }); } export function verifyToken(token: string): JWTPayload { return jwt.verify(token, JWT_SECRET) as JWTPayload; } export function decodeToken(token: string): JWTPayload | null { try { return jwt.decode(token) as JWTPayload; } catch { return null; } }