Dealer_Onboarding_Backend/src/common/config/auth.ts

32 lines
856 B
TypeScript

import jwt from 'jsonwebtoken';
import { TokenPayload } from '../../types/auth.types.js';
const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key-change-in-production';
const JWT_EXPIRE = process.env.JWT_EXPIRE || '7d';
// Generate JWT token
export const generateToken = (user: any): string => {
const payload: TokenPayload = {
userId: user.id,
email: user.email,
role: user.roleCode,
locationId: user.locationId,
districtId: user.districtId
};
return jwt.sign(payload, JWT_SECRET, {
expiresIn: JWT_EXPIRE as any
});
};
// Verify JWT token
export const verifyToken = (token: string): TokenPayload => {
try {
return jwt.verify(token, JWT_SECRET) as TokenPayload;
} catch (error) {
throw new Error('Invalid or expired token');
}
};
export { JWT_SECRET };