const jwt = require('jsonwebtoken'); /** * JWT 验证中间件 * 验证通过后将 { userId, username } 挂载到 req.user */ function authMiddleware(req, res, next) { const authHeader = req.headers['authorization']; if (!authHeader || !authHeader.startsWith('Bearer ')) { return res.status(401).json({ code: 401, message: '未提供 Authorization Token' }); } const token = authHeader.slice(7); try { const payload = jwt.verify(token, process.env.JWT_SECRET); req.user = { userId: payload.userId, username: payload.username, name: payload.name || '', sex: payload.sex || '', isDriver: payload.isDriver || false, deptId: payload.deptId || 0, deptName: payload.deptName || '', roleList: payload.roleList || [], }; next(); } catch (err) { return res.status(401).json({ code: 401, message: 'Token 无效或已过期' }); } } module.exports = authMiddleware;