登录对接方法👑

生成的登录是占位实现——怎么换成你自己的登录,用自己的数据源拿到角色与用户 ID。

生成的登录页是占位实现:填一个用户名、选一个角色就能进入,不校验密码、不查任何用户表——生成代码不知道你的用户表长什么样。它的唯一作用是让前端拿到两个值:用户 ID(userid) 和 角色(role),随每次请求作为 X-User-Id / X-User-Role 头发给后端,后端据此做权限(角色)与数据归属(用户 ID)限制。

上线前必须换成你自己的登录,并用自己的数据源来获取 userid 和 role。

默认实现(占位)

项默认行为
登录页用户名 + 角色下拉框,无密码校验
存储zc_user(用户 ID)、zc_role(角色)写入 localStorage
传递每次请求自动带 X-User-Id / X-User-Role 头
后端读取这两个头:role → 权限校验,userid → 数据归属过滤

登录页只在需要「角色(权限)」或「用户 ID(数据归属)」时才生成。占位实现信任前端自报身份,任何人都能选任意角色——仅用于开发演示,不能直接上线。

接入点

登录对接 = 换掉「拿到 userid 和 role」这一步。契约很简单:前端最终要把当前用户的 userid 和 role 交给后端——role 决定能干什么,userid 决定能看到哪些数据。具体接入点:

位置文件说明
前端登录页(主接入点)Vue:src/views/LoginView.vue;React:src/views/LoginView.tsx把占位的 doLogin() 换成你的真实登录流程,验证通过后写入 userid / role
后端身份读取(可选)Java:config/UserContextFilter.java;Go:middleware/auth.go;TS:src/auth/middleware.ts;Python:auth/middleware.py默认从请求头读。想让后端自己解析(发令牌、由你校验并映射 role/userid),改这里

两种接法

接法一:前端换成你的登录(简单) 登录页调用你自己的账号体系(已有用户表 / SSO / 外部 OAuth)验证,成功后把当前用户的 userid 和 role 写进 zc_user / zc_role。请求头与后端逻辑都不用改。

接法二:后端解析身份(推荐生产) 前端不再直接传 role,而是发你自己的令牌;后端在「身份读取」处校验令牌 → 查你的用户表 → 映射出 role 和 userid。身份在服务端校验,前端伪造不了。

安全提示

  • 占位登录信任前端自报身份,只能用于开发演示
  • 换成自己的登录后,身份校验放在服务端(接法二),不要让前端自报 role
  • 你的登录体系本身:密码用成熟哈希、令牌密钥走环境变量、生产环境用 HTTPS

常见问题

  • 我还没有用户表怎么办? 先用占位登录开发功能;上线前把登录页换成你自己的账号体系即可,业务代码(权限、数据归属)不受影响。
  • 换登录会影响权限和数据归属吗? 不影响——权限只依赖 role,数据归属只依赖 userid,你只要把这两个值正确交给后端即可。
  • 能同时接多套登录吗? 可以,登录页提供多个入口,各自校验后落到同一份 userid + role。
  • 占位登录能上线吗? 不能。它不验证身份,任何请求都可以自报角色。上线前必须换成接法一或接法二。