import jwt from 'jsonwebtoken' import crypto from 'crypto' import { config } from '../config.js' export interface JwtPayload { userId: number email: string displayName: string role: 'user' | 'admin' } export function signToken(payload: JwtPayload): string { return jwt.sign(payload, config.jwtSecret, { expiresIn: '24h' }) } export function verifyToken(token: string): JwtPayload { return jwt.verify(token, config.jwtSecret) as JwtPayload } export function generateVerificationToken(): string { return crypto.randomBytes(32).toString('hex') } export function hashToken(token: string): string { return crypto.createHash('sha256').update(token).digest('hex') }