news 2026/8/19 22:14:45

企业微信:授权失败排查 01

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
企业微信:授权失败排查 01

前言

当前是重构之前的项目:未走OAuth标准登录,通过用户硬编码登录;
docker中的nginx,为映射到宿主机上

项目场景

创建企业微信第三方应用,采用 OAuth2.0 授权码模式的标准行为:code是一次性的。

补充:同时 code 也是有时效性的。


问题描述

访问自定义企业微信第三方应用,“ 授权的code显示失败 ”。

使用抓包工具,获取用户信息身份的接口返回 errcode:50001,表示 redirect_uri unauthorized


原因分析

1. 先确认企业微信管理后台对应的应用,是否设置了网页授权及JS-SDK的可信域名

2. 思考:redirect_uri 是前端登录跳转时才用到的参数,为什么后端接口会报错?
关联Code:接口使用的 code 来自前端登录时生成的。
问题定位1:code的获取,即微信后台配置的可信配置域名和实际OAuth的redirect_uri间的匹配

3. 监控微信验证请求18006

# server块,放在 location /prod-api 之前 access_log /var/log/nginx/18002.access.log combined; error log /var/log/nginx/18002.error.log notice; location = /可信域名验证文件.txt { default_type text/plain; return 200 "文件内容"; }
  • 通过日志access.log、error.log 监控微信验证请求的访问记录:
    途径一:默认日志
    途径二:自定义日志
  • 相关测试命令

    结果:日志没有任何内容。说明微信验证机器人未走18006端口,可能走标准端口80
  • # 请求验证文件命令 curl -I http://ip:18006/可信域名验证文件.txt # 查看请求日志命令 tail -f /var/log/nginx/18006.access.log | grep -i "ww_verify"

4. 监控微信验证请求80

80端口的验证文件配置完成且可正常访问后,再次测试接口,发现50001错误依然存在。

  • 排查路线出现分叉
问题关键点
可信域名的配置 是否 应带端口号使用非标准端口时,微信要求可信域名必须带端口号,不能只填裸域名
微信后台反复修改域名

测试结果相同:不通过

80端口配置出现问题排查配置引起的冲突导致nginx重启失败问题

关键转折

验证可信域名流程如下:
获取access_token -> 寻找企业微信应用 -> code会携带redirect_uri -> 验证应用中的可信域名列表

问题定位2:获取access_token阶段可能存在问题,即生产环境程序包的secret凭证错误


解决方案

更新后端中 secret 硬编码为新应用的凭证

快速验证

# 步骤1: 测试新 secret 能否拿到 token curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=<xxxx>&corpsecret=<应用的secret>" # 步骤2: 用拿到的 token + code 测试 getuserinfo curl "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=<TOKEN>&code=<CODE>"

如果测试 getuserInfo 的数据传输,返回60020:说明新Agent的IP白名单不含当前服务器 IP

修复:在企业可信IP配置项中添加服务器的IP

辅助Linux命令

# 解压到临时目录;检查class文件中的字符串【strings 从二进制文件中提取所有可读字符串】 cd /tmp && jar xf /path/xxx.jar BOOT-INF/classes/ && \ strings BOOT-INF/classes/path/yyy.class | grep -i "secret\|1QEQDC\|Hjtmck"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 22:14:44

智能体工具选型别只看功能清单

智能体工具选型别只看功能清单 看各家大模型选型报告时&#xff0c;参数表格做得很漂亮。什么上下文支持 128K、Tool Calling 成功率 99%、多模态图像理解胜过人类测试基准。 真拿这些模型去构建多模态 Agent&#xff0c;跑线上真实业务&#xff0c;就会发现这些纸面参数水分极…

作者头像 李华
网站建设 2026/8/19 22:07:14

ESP8266三行代码搭建Web服务器:从InqPortal库到实时数据监控实战

1. 项目缘起&#xff1a;当“三行代码”遇到ESP8266如果你玩过Arduino&#xff0c;或者对物联网有点兴趣&#xff0c;大概率听说过ESP8266这颗神奇的WiFi芯片。它便宜、小巧&#xff0c;却内置了完整的TCP/IP协议栈&#xff0c;让单片机轻松连上网络。很多人的第一个物联网项目…

作者头像 李华
网站建设 2026/8/19 22:07:11

计算机单片机毕设实战-基于 STM32 或 51 单片机的环境参数阈值可调报警与风扇控制系统设计 基于 STM32 或 51 单片机的 LCD1602 环境数据显示智能监测系统设计(023803)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/8/19 22:04:03

第181篇 稳定性分析——系统会不会“发散“的判定方法

上篇讲了一阶二阶系统的响应特性&#xff0c;你知道了阻尼比、自然频率这些参数怎么影响系统的动态行为。但有一个更根本的问题还没聊——你怎么判断一个系统到底稳不稳定&#xff1f;稳定性是控制理论的命根子。一个控制系统如果不稳定&#xff0c;那它根本没法用——输出要么…

作者头像 李华