const jwt = require('jsonwebtoken'); // 配置 JWT 的密钥和选项 const JWT_SECRET = '29A89SJDEI23HUEF9'; // 替换为你的密钥 const JWT_EXPIRES_IN = '24h'; // Token 的过期时间 /** * 生成 JWT Token * @param {Object} payload - 要包含在 Token 中的数据(如 userId) * @returns {string} 生成的 JWT Token */ function generateToken(payload) { try { return jwt.sign(payload, JWT_SECRET, { expiresIn: JWT_EXPIRES_IN }); } catch (error) { console.error('生成 Token 时出错:', error); throw new Error('生成 Token 失败'); } } /** * 验证 JWT Token 并返回解码后的 user_id * @param {string} token - 客户端传递的 JWT Token * @returns {number} 解码后的 user_id * @throws {Error} 如果验证失败抛出错误 */ function verifyToken(token) { try { const decoded = jwt.verify(token, JWT_SECRET); if (!decoded.userId) { return { error: 'Token 中未包含 user_id' }; } return { userId: decoded.userId }; } catch (error) { console.error('验证 Token 时出错:', error.message); return { error: '无效或过期的 Token' }; } } module.exports = { generateToken, verifyToken, };