场景
微信公众号开发时,不可避免的微信 auth 认证及 openId 获取;这对用户来说也是处于安全考虑。不过作为开发来讲就要多一些工作要做,但对于从 coding 到 online 只有一个认证公众号的我们;确实还要开发与 QA 同学多一项技能,那就是 代理认证授权 来顺利完成微信 jssdk 的功能使用。对于一个曾经在国内领先的微信公众平台服务商之一供职的偶,不禁发出 what? 无奈此景乃首次遇到;迫于时间压力只可向前走,后续再做专号专用之打算。
样例
有过开发的的同学看到下面的图样,应该是比较熟悉的。😯
方案
通过 代理认证授权 实现一个认证公众号,实现多套环境使用的目的。
实现起来也并不是一帆风顺,因现微信要求绑定到公众平台后台的网页授权域名受限。针对跨环境且访问协议不一致时,这个时候便是需要解决的根本问题所在,索性今天便是与众共享走过有关此的弯路。
工具
以下所列举工具的具体使用配置,可自行网上搜索就不再此赘述。
- Windows:Fiddler、Charles
- Mac:Charles
操作解读
入坑示例
代理接口发起的为 post 请求且存在跨越(接口支持跨越)
- 线上域名 https://m.agency.com/route/demo
- 代理环境 http://tst.agency.com/route/demo
代理配置
接口响应
抛出异常
解决方案
线上访问本是通过 https 访问 ,但代理到的环境是 http 所以会受限与 Webview/Chrome;通过修改访问协议后遍达到预期结果。
小结
对于Charles 代理出现此情况,如果有了解其底层实现原理不难理解;希望此场景能够帮助到遇到相似问题的偶们,如果有更好的姿势也欢迎提出。同时也借此为优秀的技术社区“掘金”贡献一份自己的微薄之力。感谢。