Nebula Auth 业务功能
1. 功能概览
从当前代码与 README 可以确认,nebula-auth 对业务系统提供的能力主要包括六类:
- 登录与会话管理
- 当前用户上下文聚合
- 用户、角色、权限管理
- 组织、菜单、按钮资源管理
- 在线用户治理
- OAuth2 与微信登录能力
这些能力围绕“统一身份认证 + 统一权限中心 + 统一资源授权入口”展开,而不是孤立的几条登录接口。
2. 登录与会话管理
2.1 用户注册
适用场景:
- 后台平台开放账号注册
- 管理员预置之外允许业务用户自行开通账号
业务价值:
- 减少完全依赖人工建号的成本
- 让登录体系具备自助开通入口
2.2 用户登录
适用场景:
- 用户名密码登录
- 微信小程序登录
- 微信网站登录
- 后续扩展 QQ / 支付宝 OAuth2 登录
业务价值:
- 统一收口不同身份来源的登录入口
- 最终都落到同一套本地用户、角色与权限体系里
2.3 刷新令牌
适用场景:
- access token 快过期时续期
- 前端长时间在线保持登录态
业务价值:
- 既控制 access token 生命周期,又能维持较好的用户体验
2.4 用户登出
适用场景:
- 当前用户主动退出登录
- 后台主动让某个会话失效
业务价值:
- 不只是前端删除 token,而是真正清理服务端会话缓存
3. 当前用户上下文聚合
3.1 获取当前登录用户
当前接口:
GET /api/auth/current-user
它返回的不只是基础用户资料,还包括:
- 组织编码列表
- 角色编码列表
- 权限编码列表
- 菜单列表
业务价值:
- 前端可以直接用它初始化当前用户状态
- 不需要再分别调用多个接口组装权限上下文
- 菜单和权限数据可以直接驱动前端路由和按钮控制
4. 用户、角色、权限管理
4.1 用户管理
适用场景:
- 创建后台账号
- 调整用户状态
- 维护用户资料
- 分页查询用户列表
4.2 角色管理
适用场景:
- 维护角色编码与角色名称
- 给后台权限体系建立标准角色集合
- 在授权时把角色作为权限聚合容器
4.3 权限管理
适用场景:
- 给用户、角色或组织分配资源权限
- 管理菜单和按钮的授权关系
业务价值:
- 把“谁能访问什么资源”统一沉淀为标准数据模型
- 支持用户、角色、组织三类授权主体
5. 组织、菜单、按钮资源管理
5.1 组织管理
适用场景:
- 维护组织树
- 维护公司 / 部门 / 团队结构
- 给组织本身做资源授权
5.2 菜单管理
适用场景:
- 维护后台左侧菜单
- 维护路由路径、组件路径、图标等前端元数据
- 构建菜单树
5.3 按钮管理
适用场景:
- 维护页面内动作点,如新增、编辑、删除、导出
- 把动作级权限从页面路由权限中拆分出来单独治理
业务价值:
- 菜单控制“能不能看到页面入口”
- 按钮控制“能不能执行某个动作”
- 组织、菜单、按钮一起构成后台权限中心的资源面
6. 在线用户治理
6.1 分页查看在线用户
适用场景:
- 后台查看当前在线会话
- 排查异常登录或多端登录情况
6.2 强制踢出在线用户
适用场景:
- 发现异常会话后立即失效
- 密码修改后清理旧会话
- 安全审计和运维治理
业务价值:
- auth 模块不只是签发 token,还具备可视化会话治理能力
7. OAuth2 与微信登录能力
7.1 微信小程序登录
适用场景:
- 小程序端快速登录
- 用微信身份落到 Nebula 本地用户体系
7.2 微信网站登录
当前支持两种模式:
- redirect
- qr
适用场景:
- PC 端扫码登录
- 浏览器跳转式微信授权登录
7.3 OAuth2 客户端与账号绑定管理
适用场景:
- 管理第三方登录提供商接入配置
- 管理第三方账号与本地用户的绑定关系
业务价值:
- 把外部身份统一映射到平台本地用户、角色和权限模型中
8. 典型业务场景
8.1 管理后台统一登录入口
例如:
- 账号密码登录
- 登录后加载当前用户、菜单和权限
- 页面按权限控制菜单和按钮显隐
8.2 多主体资源授权
例如:
- 直接给某个用户授权
- 给角色授权,再把角色分配给用户
- 给组织授权,让组织下成员继承资源范围
8.3 微信扫码登录后台
例如:
- PC 端展示二维码
- 用户微信扫码后完成登录
- 前端轮询状态直到拿到 token
8.4 安全治理与运维
例如:
- 运营后台查看当前在线用户
- 管理员强制踢出异常会话
- 调整登录失败锁定策略