Skip to content

Latest commit

 

History

History
67 lines (52 loc) · 2.59 KB

README.md

File metadata and controls

67 lines (52 loc) · 2.59 KB

项目开发规范

此文档排序较乱,待整理。 如果你希望参与开发,请遵循以下规范。 如对该规范有疑问或建议,请在issue讨论。

用户属性

属性 类型 不可修改 唯一 可空 描述
ID 雪花ID 是 是 系统自动生成,用于在系统中唯一标识用户,不可用于登录
用户名 字符串 是 是 用于唯一标识用户,可用于登录
昵称 字符串 用于展示
密码 字符串 是 不为空时用于登录
邮箱 字符串 是 用于找回密码,不为空时可用于登录
手机号 字符串 是 用于找回密码,不为空时可用于登录

Controller层

Controller层方法直接返回业务数据, 包装将由ResponseBodyAdvice统一处理。

权限控制

本系统权限控制使用RBAC模型,其中权限被硬编码在系统中 , 角色和用户由用户管理模块管理。 权限校验应当只检查是否拥有权限,不应该检查是否是某个角色。

二维码登录

  • 临时token:用于索引本次登录的任务
  • 确认权限token:保证只有扫描者才能进行确认操作
sequenceDiagram
    participant A as 待登录前端
    participant S as 后端
    participant B as 已登录前端
    A ->> S: 请求临时token(浏览器信息,IP地址)
    S ->> S: 记录{临时token:(IP地址,IP属地,浏览器信息)}
    S -->> A: 临时token
    A ->> A: 使用二维码展示临时token
    A ->> S: 轮询临时token状态(临时token)
    S -->> A: 临时token状态(未扫描) "枚举{未扫描,未确认,已确认,已取消,无效}"
    B ->> A: 扫描二维码
    A -->> B: 临时token
    B ->> S: 获取待登录设备信息(临时token,确认权限token)
    S ->> S: 修改临时token状态为"未确认",记录扫描者的账号ID
    S -->> A: 临时token状态(未确认,扫描者账号信息)
    S -->> B: 待登录端信息(IP属地,浏览器信息)
    B ->> S: 确认登录(临时token,确认权限token)
    S ->> S: 修改临时token状态为"已确认",生成新AccessKey
    S -->> A: 临时token状态(已确认,新AccessKey)
    S ->> S: 销毁临时token相关信息
Loading

命名规范

方法名必须表明意图

  • ❌find()
  • ✅findUser()

Service中不要使用find

  • ❌userService.findUser()
  • ✅userService.getUser()