## 任务目标
请对当前微信小程序及后端的登录链路进行实现或检查。不要提供真实密钥和用户个人数据。
以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。
## 输入信息(选填)
两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。
登录链路目标:
小程序或后端资料:
## 信息不完整时
先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。
### 优先确认
- 追踪 wx.login 临时 code 的提交、服务端换取和自定义登录态签发,定位重复 code 与并发处理。
- 检查 AppID 配置来源、session_key 存放和响应日志,确认秘密不会下发到客户端。
- 读取微信身份与业务账号绑定、机构角色校验、会话失效及退出后的访问控制。
### 可采用的默认处理
- 默认只读检查身份链路;明确实现时沿用现有认证和会话体系,不另造一套令牌或默认自动注册账号。
- AppID、AppSecret、用户身份及账号绑定不虚构;缺凭据时使用明确隔离的模拟响应验证状态处理。
- 客户端只提交必要凭证和选择意图,账号、租户和角色以可信后端授权为准,未知授权不得默认放行。
### 必须有依据的事项
- 微信身份与业务账号的绑定、自动开户或机构授权规则无法确认,不能自行合并账号或赋予权限。
- 缺少真实 AppID 配置、服务端换取权限或可用测试账号时,只暂停对应真实登录联调,不伪造平台结果。
只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。
### 资料仍不足时的交付
- 仅有前端时交付可证实的 code、请求和登录态问题,列后端字段保管与授权核查点,不断言服务端安全。
- 没有联调条件时给完整时序、接口边界及重复 code、失效、停用和退出访问的隔离用例。
## 执行要求
核对微信身份换取流程,并按项目需求明确业务账号绑定、租户授权、会话期限和退出策略。区分平台登录能力与业务系统自己的身份和权限规则。
1. 画清小程序、开发者服务器和微信服务之间的数据流。核对 wx.login 返回的临时凭证由谁提交、在哪里换取身份,以及后续业务请求使用哪一种自定义登录态,不能把微信临时凭证直接当成长期业务令牌。
2. 检查临时 code 的一次性使用约束,处理重复请求、凭证过期和登录并发。失败后按具体原因重新取得凭证,避免重复回放已经消耗的 code;前端只能根据服务端明确结果判断登录成功。
3. 核查服务端对 session_key 的保管,确认它不会进入小程序响应、前端存储、公开接口或业务日志。排查打包配置和错误输出中的服务端密钥,示例中统一使用占位符,不复制生产凭据到测试用例。
4. 明确微信身份与业务账号的对应关系,检查账号状态、机构和角色从可信服务端获取。客户端传入的用户编号或租户编号不能直接决定查询权限;切换机构时核对当前用户确有相应授权。
5. 按业务约定梳理登录中、已登录、会话失效、账号停用和退出后的页面行为。回到原业务页面时重新校验可操作状态,避免界面仍显示登录成功但接口持续失败;必要信息应在失败时保留以便继续操作。
6. 联调首次登录、再次登录、code 重复、微信服务失败、业务账号受限、会话过期和退出后访问。逐条核对请求、响应与界面状态,采用脱敏记录,确认异常没有泄露会话密钥或敏感堆栈。
## 交付与验收
输出:登录时序、字段与保管位置、业务授权待确认项、必要实现及联调记录。无法访问服务端代码时明确审查边界,不凭前端界面断言权限安全;缺少会话约定时先指出所需决策,并完成官方登录步骤的可核对方案。
### 本条完成检查
- 输出三方登录时序、字段流向和保管位置,区分微信身份与业务会话。
- 验证 code 重复、并发、平台失败、账号受限、会话过期及退出后访问,检查 session_key 不出现在客户端和日志。
- 分别记录静态审查、模拟测试与真实联调结果,未确认的账号和租户规则明确留待决策。
按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。
## 参考资料与适用边界
官方来源(2026-09-08 核验):
- [腾讯微信《微信小程序:小程序登录》](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html)