API 安全
XinAdmin 通过中间件链、注解路由、请求校验和异常处理构建了完整的 API 安全体系。
路由中间件
所有受保护的 API 路由采用三重中间件:
AnnoRoute 注解路由
XinAdmin 提供了 AnnoRoute 注解路由系统,通过 PHP 8 注解自动注册路由和权限中间件,避免手动编写路由定义和中间件配置:
注解参数
RouteRegisterService 在启动时扫描所有带注解的控制器,自动调用 Laravel 路由注册并附加 ['auth:sanctum', 'authGuard', 'abilities:{prefix}.{authorize}'] 中间件。
未授权处理
当用户 Token 缺少所需权限时,ExceptionsHandler 捕获 MissingAbilityException 并返回:
其他安全相关异常处理:
CORS 跨域安全
全局 CORS 中间件 AllowCrossDomainMiddleware:
处理 OPTIONS 预检请求返回 204 状态码。异常处理器中也重复设置了 CORS 头作为兜底。
请求校验
所有表单请求继承 BaseFormRequest,提供统一的验证规则:
验证失败时返回:
新增受保护接口
为系统添加新的受保护接口的步骤:
1. 在权限规则表添加记录
在 sys_rule 表中新增一条 type=rule 的记录,key 为对应权限标识,如 my.module.action。
2. 定义路由并附加中间件
3. 前端添加权限控制