审查微信小程序临时 code、服务端身份换取、自定义登录态及 session_key 保管,补齐业务授权联调。
## 任务目标 请对当前微信小程序及后端的登录链路进行实现或检查。不要提供真实密钥和用户个人数据。 以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 登录链路目标:沿现有 wx.login、登录请求、服务端换取身份和业务会话逐段检查;有明确新增登录或修复要求时在已确认账号关系内实施。 小程序或后端资料:查找登录模块、请求拦截器、后端认证入口、账号模型、会话配置和脱敏日志,使用已有安全配置位置,不要求粘贴真实密钥。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 追踪 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)