35 lines
691 B
JavaScript
35 lines
691 B
JavaScript
const jwt = require('jsonwebtoken');
|
|
|
|
const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key-change-in-production';
|
|
const JWT_EXPIRE = process.env.JWT_EXPIRE || '7d';
|
|
|
|
// Generate JWT token
|
|
const generateToken = (user) => {
|
|
const payload = {
|
|
userId: user.id,
|
|
email: user.email,
|
|
role: user.role,
|
|
region: user.region,
|
|
zone: user.zone
|
|
};
|
|
|
|
return jwt.sign(payload, JWT_SECRET, {
|
|
expiresIn: JWT_EXPIRE
|
|
});
|
|
};
|
|
|
|
// Verify JWT token
|
|
const verifyToken = (token) => {
|
|
try {
|
|
return jwt.verify(token, JWT_SECRET);
|
|
} catch (error) {
|
|
throw new Error('Invalid or expired token');
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
generateToken,
|
|
verifyToken,
|
|
JWT_SECRET
|
|
};
|