实现企微首次免密自动绑定(07-28-all-account-login-readiness)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s

这个提交包含在:
2026-07-28 11:18:50 +08:00
父节点 0551212b78
当前提交 9b12451b85
共修改 22 个文件,包含 1764 行新增和 132 行删除
+2 -1
查看文件
@@ -20,7 +20,8 @@
- PC:打开 `https://oa.hyinda.com`,使用账号密码登录。
- 手机:从企业微信打开 `海音达工作台`,进入移动工作台。
- 如果企业微信免登失败,先用账号密码登录,再到 `个人设置 -> 企业微信绑定` 检查绑定状态。
- 第一次从企业微信进入时,系统按 userid 或唯一企业邮箱自动匹配既有 active OA 账户并直接登录,不需要先输入 OA 密码。
- 如果提示账号映射缺失或冲突,停止重试并联系管理员核对通讯录同步;系统不会按姓名猜测或覆盖现有绑定。
### 2.2 提交报销
+3 -2
查看文件
@@ -68,8 +68,9 @@
- 如果公司启用了企业微信工作台入口,优先从企业微信打开海音达工作台。
- 企业微信不只是入口:后续请假、补卡、外出、加班、打卡和部分人事资料优先在企业微信完成。
- OA 保留报销、财务、采购、合同、项目、镜像查询和应急接管。企业微信不可用时,以管理员通知为准临时改用 OA 应急入口。
- 如果企业微信免登失败,直接回到账号密码登录即可。
- 如果你第一次从企业微信进入但看到“尚未绑定”,请不要反复重试,先用账号密码登录,再到 `个人设置 -> 企业微信绑定` 完成绑定。
- 第一次从企业微信进入时,系统会按 userid 或企业邮箱自动匹配 OA 账户并直接登录,不需要先输入 OA 密码。
- 如果看到“账号映射尚未完成”或“账号映射存在冲突”,请不要反复重试,也不要把密码交给他人;联系管理员核对通讯录同步和 OA 账号状态。
- 企业微信服务不可用时,账号密码仍可作为独立应急入口,但它不是首次企微绑定步骤。
- 如果看到“登录已失效 / 已超时”,重新从企业微信工作台进入即可。
- 日常建议:手机从企业微信打开海音达工作台,PC 直接登录 OA;报销、项目更新、采购和财务事项在 OA 里完成,HR/考勤事项优先在企业微信完成。
+4 -3
查看文件
@@ -641,7 +641,7 @@ OPOLICY1 是正式启用前的制度收口层。它不新增一套业务流程
- 公司只维护一个企业微信自建应用,建议命名为 `海音达工作台`。
- 默认工作台入口在企业微信手机端落到 `/mobile`;桌面浏览器和账号密码登录仍进入 `/portal`。OA 主办业务的真正操作仍在 `hyb-oa` 内完成。
- 已上线的报销、采购、费用、合同、项目和财务类 OA 主办审批都在 OA 内提交和审批;企业微信消息只负责脱敏提醒并 deeplink 回 OA。请假、补卡、外出、加班后续按 WFOC/DBWFOC 迁往企业微信原生审批,OA 同步镜像并保留应急入口。
- 企微免登建议先完成账号绑定,再逐步在试点部门开启;任何时候都保留账号密码回退。
- 企微免登要求在账号启用时通过 userid 或唯一企业邮箱完成映射;员工第一次从工作台进入不需要先输入 OA 密码。账号密码只作为企微不可用时的独立回退。
- 若 OA 部署到公网,生产建议同时满足:`HTTPS`、`COOKIE_SECURE=true`、登录失败锁定、限流、审计开启。
### 正式接入最小步骤
@@ -657,12 +657,13 @@ OPOLICY1 是正式启用前的制度收口层。它不新增一套业务流程
- `WECOM_AGENT_SECRET=...`
- `WECOM_REDIRECT_URI=https://oa.hyinda.com/api/auth/wecom/callback`
- `WECOM_ALLOWED_RETURN_HOSTS=oa.hyinda.com`
5. 先让管理员用账号密码登录,在 `个人设置` 完成一次绑定,再测试企业微信工作台直达;已绑定用户从手机企业微信进入时应直接看到移动工作台。
5. 先 dry-run 核对通讯录 userid/企业邮箱与 OA active 账户的唯一映射,再 apply 建立 binding;无 binding 时,首次企微登录会用 userid 或企微企业邮箱精确匹配既有 active OA 账户并自动补绑定。员工不需要先输入 OA 密码。
6. 若启用 OA 同步企业微信打卡数据,在企业微信打卡 API「可调用接口的应用」中授权 `海音达工作台`。OA 默认可复用 `WECOM_AGENT_SECRET`;只有单独创建考勤同步应用时才额外配置 `WECOM_CHECKIN_SECRET`。
7. HR/考勤员工日常审批后续配置企业微信原生审批模板作为主流程;WAPC2FLIVE 已自动生成请假/补卡 OA-POC 低风险样件并复跑只读 POC,WCBK1 已完成真实回调事件确认,WACP3R 已完成补偿拉取,WREAD1 已确认请假/补卡在企微中可读,WADM1 已完成自建留存/镜像模型设计,WARCH1 已完成最小请假/补卡历史留存,WARCH2 已完成正式只读历史查询。WARCH3/WCHECK1/WEXT1 后先做自动巡检、打卡摘要留存和外出/加班 dry-run;WOPS1 后告警默认发给 `HYD000006`(`wangshunli` 的员工号)且只报新增异常。同意单击即通过需继续纳入操作提示和审计设计。外出/加班正式模板人工测试仍需后续单独批准。报销、财务、采购、合同和项目类 OA 主办审批仍使用企业微信消息提醒并回到 OA 页面完成。
### 员工会看到的典型状态
- 未绑定:登录页会提示“当前企业微信账号尚未绑定”,回退到账号密码登录。
- 映射唯一:首次从工作台进入即可自动补 binding 并直接登录,无需 OA 密码。
- 映射缺失或冲突:登录页提示联系管理员核对通讯录同步;系统不按姓名猜测、不创建账户、不覆盖冲突 binding。
- 已绑定:从企业微信工作台进入后直接落到 `/mobile`,桌面或普通浏览器场景仍可进入 `Portal`。
- 入口未开放:个人设置仍可绑定,但登录页不会把企业微信作为正式入口展示。
- 配置不完整:个人设置会明确提示缺少 `CorpID / AgentID / 回调地址` 等原因。
@@ -91,8 +91,8 @@ WFOC 后,企微/人事助手是 HR 员工主数据源;OA 是员工镜像、
| 字段 | 用途 | 要求 |
| --- | --- | --- |
| 企业微信 `userId` | 企业微信成员身份主键 | 与员工绑定时必须唯一 |
| 企业微信手机号 | 辅助匹配员工 | 只能作为候选,不可单独作为登录授权 |
| 企业微信邮箱 | 辅助匹配员工 | 只能作为候选,不可单独作为登录授权 |
| 企业微信手机号 | 辅助核对员工 | 不作为普通登录自动绑定键 |
| 企业微信邮箱 | 稳定匹配员工 | 规范化后精确匹配唯一 active OA 账户,可用于自动补 binding |
| OA `employee_id` | OA 员工主键 | 权限和业务数据以此为准 |
| 绑定时间 | 审计 | 必须记录 |
| 绑定人/解绑人 | 审计 | 自助绑定和管理员处理都必须记录 |
@@ -100,7 +100,9 @@ WFOC 后,企微/人事助手是 HR 员工主数据源;OA 是员工镜像、
### 4.2 绑定规则
- 已绑定且 OA 员工账号正常:从企业微信进入后直达 `/mobile` 或 deeplink 目标页。
- 未绑定:提示“当前企业微信账号尚未绑定”,允许账号密码登录后在个人设置完成绑定。
- 未绑定:先按 userid/员工编号精确匹配;仍未命中时读取企微企业邮箱并精确匹配唯一 active OA 账户,事务内建立 binding、写审计并直接登录。
- 首次企微登录不得要求员工先输入 OA 用户名和密码。姓名和手机号不得作为自动绑定键。
- 企业邮箱缺失、无匹配、停用、userid 与邮箱指向不同账户或任一侧已有冲突 binding 时必须失败关闭,不创建 OA 账户、不修改角色、不覆盖映射。
- 一个企业微信身份只能绑定一个员工。
- 一个员工原则上只绑定一个当前有效企业微信身份;更换账号必须先解绑并留痕。
- 员工离职、账号停用或组织权限移除后,企业微信入口不得继续进入 OA 业务页面。
@@ -112,7 +114,7 @@ WFOC 后,企微/人事助手是 HR 员工主数据源;OA 是员工镜像、
| --- | --- | --- | --- |
| 入口配置 | 未启用 | 企业微信入口不展示或提示不可用 | 记录配置状态,不影响账号密码登录 |
| 入口配置 | 已启用 | 企业微信工作台可进入 OA | 记录启用人、启用时间和可见范围 |
| 绑定关系 | 未绑定 | 企业微信身份尚未关联 OA 员工 | 可回退账号密码登录 |
| 绑定关系 | 未绑定 | 企业微信身份尚未关联 OA 员工 | 唯一稳定键自动补绑定;否则提示管理员处理 |
| 绑定关系 | 已绑定 | 企业微信身份已关联有效 OA 员工 | 记录绑定时间、绑定方式和员工 ID |
| 绑定关系 | 已解绑 | 绑定关系被员工或管理员解除 | 记录解绑人、解绑时间和原因 |
| 绑定关系 | 已停用 | 员工离职、停用或组织权限移除 | 阻断企业微信入口进入业务页面 |
@@ -127,7 +129,8 @@ WFOC 后,企微/人事助手是 HR 员工主数据源;OA 是员工镜像、
| 异常 | 处理规则 | 用户提示 |
| --- | --- | --- |
| 未绑定 | 回退账号密码登录,登录后可自助绑定 | “当前企业微信账号尚未绑定,请先使用 OA 账号登录并完成绑定” |
| 映射缺失 | 不创建会话,不要求员工用密码绑定 | “企业微信账号映射尚未完成,请联系管理员核对通讯录同步” |
| 映射冲突 | 阻断,不覆盖任一现有 binding | “企业微信账号映射存在冲突,请联系管理员核对” |
| 重复绑定 | 阻断,并提示联系管理员 | “该企业微信账号已绑定其他员工” |
| OA 账号停用 | 阻断进入业务页面 | “账号已停用,请联系管理员” |
| 企业微信回调失败 | 不创建会话,回退登录页 | “企业微信登录失败,请重试或使用账号密码登录” |