// 认证中间件 const jwt = require('jsonwebtoken'); const authMiddleware = (req, res, next) => { const authHeader = req.headers.authorization; if (!authHeader || !authHeader.startsWith('Bearer ')) { return res.status(401).json({ error: '未提供认证令牌', code: 'AUTH_TOKEN_MISSING', }); } const token = authHeader.substring(7); try { const decoded = jwt.verify(token, process.env.CUBEJS_SECRET); req.user = decoded; next(); } catch (error) { return res.status(401).json({ error: '无效的认证令牌', code: 'AUTH_TOKEN_INVALID', }); } }; // 角色检查中间件 const requireRole = (...roles) => { return (req, res, next) => { if (!roles.includes(req.user.role)) { return res.status(403).json({ error: '权限不足' }); } next(); }; }; module.exports = authMiddleware; module.exports.requireRole = requireRole;