Appearance
认证与用户权限管理(UPMS)
Auth(默认 3000)负责 OAuth2/密码/短信等登录流程、验证码、Token 刷新和单点登出;UPMS(源码默认 4000)负责用户、组织、角色、菜单、部门、租户和系统字典。
领域服务通过认证上下文获取主体,并在自己的资源层执行二次授权。修改菜单或角色后验证 Gateway、前端路由和服务端接口三层权限。
认证链路
Auth 模块基于 Spring Authorization Server,PigxTokenEndpoint 和 resource-owner converter/provider 处理密码、短信等登录扩展,验证码由缓存 provider 保存。Token customizer 会写入用户、租户和权限相关 claims;资源服务从请求上下文读取主体,不能信任前端自己提交的 userId 或 tenantId。
登录/验证码 -> Auth 签发 access/refresh token
-> Gateway 透传 Authorization
-> 领域服务资源校验与 tenant filter
-> 统一 R<T> 或 SSE/文件响应
UPMS 的用户、角色、菜单、部门和租户数据通过 Controller/Service/Mapper 管理,远程调用通过 API/Feign DTO。菜单权限决定前端入口,接口权限仍需服务端再次判断;资源级 ACL(Agent、Dataset、FileRoom、订单)不能只依赖菜单编码。
验证码失败查缓存键、过期时间和限流;Token 失效查 issuer、时钟、刷新 token 和 Gateway 透传;登录成功但接口 403 查 tenant 状态、角色菜单和服务端授权;跨服务调用丢租户查 Feign tenant interceptor 与 TenantContextHolder。