/** * 角色权限分级中间件(RBAC) * 用法: roleAuth('admin'), roleAuth('admin', 'store', 'rider') * * 角色说明: * admin - 管理后台最高权限,可访问所有 API * store - 门店管理员,可访问门店相关数据和业务操作 * rider - 骑手,只能访问自己的数据和公开浏览接口 */ const roleAuth = (...allowedRoles) => { return (req, res, next) => { if (!req.user) { return res.status(401).json({ success: false, message: '未登录' }); } const { role } = req.user; if (!allowedRoles.includes(role)) { return res.status(403).json({ success: false, message: '无权访问' }); } next(); }; }; module.exports = roleAuth;