| | |
| | | | 场景 | 规则 | |
| | | |------|------| |
| | | | 企业微信首次扫码(未绑定) | 自动创建系统用户,用户名为 `wx_` + 8 位随机十六进制,昵称取企业微信昵称,账号状态为启用,随机生成密码(用户无需知晓,仅用于占位) | |
| | | | 首次注册后的默认权限 | 绑定角色 `wxcp_user`,**仅授予「会员管理」整棵子树**(根菜单 1075490 + 子菜单 + 孙菜单,共 15 条)。首页是前端静态路由、不依赖菜单表,任何账号都可见,无需授权。角色缺失时代码只记 warn 日志、不阻断登录,表现为「能进系统但菜单全空」 | |
| | | | 企业微信再次扫码(已绑定) | 直接登录,不创建新用户 | |
| | | | 非企业微信的社交平台首次登录 | 仍返回 `1_002_000_005`「未绑定账号,需要进行绑定」,需引导用户走账号密码登录并绑定 | |
| | | | 账号密码登录时携带社交参数 | 走原有绑定逻辑,登录成功后该社交账号与账号绑定 | |
| | |
| | | - 企业微信授权登录要求**已备案域名**且备案主体与企业微信认证主体一致,本地 `localhost` 调试需用内网穿透并保证域名备案。 |
| | | - 首次自动注册会跳过"注册功能已关闭"配置项(`system.user.register-enabled`),但**仍受租户账号配额限制**,配额用尽时返回 `USER_COUNT_MAX`。 |
| | | - 自动注册生成的用户名以 `wx_` 开头,便于与人工创建的账号区分;如需限制企业微信登录的用户范围,需在业务侧按用户名前缀或角色做二次管控。 |
| | | - **默认角色 `wxcp_user` 必须先在库里存在**。该角色及其「会员管理」授权已写进 `docs/sql/wxcp_menu.sql` 末尾(合并脚本 `config_export_all_<日期>.sql` 阶段三末尾同步了一份),新库初始化会自动建出来;**已建过的老库要补执行这一段**,否则扫码新账号能登录但菜单空白。代码按**角色编码**查找而非角色编号,换库不会失效。 |
| | | - 回调接口 `/admin-api/wxcp/callback` 已加入免登录白名单,**不需要也不应该带前端令牌**。 |
| | | - 前端原有的「未绑定 → 弹出绑定账号密码弹窗」逻辑,对企业微信场景不再触发;若产品上仍希望首次登录先绑定既有账号,需要另行明确,当前实现为直接自动注册。 |
| | | |