flowchart TD
A["打开小程序"] --> B{"本地有 token 吗?"}
B -- "有" --> C["直接按原逻辑进入小程序"]
B -- "没有/清缓存" --> D["wx.login 获取 code"]
D --> E["前端请求默认后台
resolveMpWxEnterprise
header 不放企业编号"]
E --> F["后台用 code 换 openid"]
F --> G["后台查最近登录企业表
openid + is_delete=0"]
G --> H{"查到企业和用户吗?"}
H -- "没有" --> I["前端停在未登录状态
用户正常登录"]
H -- "有" --> J["后台返回
openid + enterpriseNo + userId"]
J --> K["前端请求静默登录
restoreMpWxLogin
header 放 enterpriseNo"]
K --> L["Nginx 根据 enterpriseNo
转发到对应企业后台"]
L --> M["企业后台校验
openid 是否绑定 userId"]
M --> N{"校验通过吗?"}
N -- "通过" --> O["返回 token
恢复登录成功"]
N -- "不通过" --> I
I --> P["用户输入账号/手机号/编号等正常登录"]
P --> Q["登录成功返回
token + userId + enterpriseNo"]
Q --> R["前端请求
bindMpWxEnterpriseRoute"]
R --> S["默认后台记录
openid + enterpriseNo + userId
is_delete=0"]
S --> C
O --> T["前端也可再次记录最近登录
bindMpWxEnterpriseRoute"]
T --> C
C --> U{"用户退出登录/修改密码?"}
U -- "是" --> V["请求禁用最近登录恢复"]
V --> W["后台把对应记录标记删除
is_delete=1"]
W --> X["下次清缓存打开
不会自动登录"]