在做微信公众号网页开发时, 获取微信授权是个老大难的问题
由于微信需要校验线上域名
具体请看开发文档 而我们在开发过程中使用的都是本地服务, 这时候你是没法进行授权的
大多数时候, 很多人都是这一块的功能在本地开发时后忽略掉, 不验证, 对照文档开发完后直接丢测试环境去验证, 调试 其实, 这个是有办法解决的
分析一下问题
- 微信授权必须是域名
- 微信会取域名下授权文件进行验证
- 开发者本地电脑是ip而非域名 ####所以有以下解决问题的思路
- 一个外网域名用于授权
- 需要访问该域名时能实际打开对应开发者ip上的的服务
解决方案如下
- 授权域名用测试环境域名
- 测试环境有nginx, 而nginx可以转发, 代理
- 测试环境服务器需要连接本地局域网
细化一下得到具体操作方案
假如你测试环境域名叫https://www.test.com;
在ngixn服务上增加如下配置location /zhangsan88 {proxy_pass https://192.168.8.8:8088;};
意思就是 当用户访问 https://www.test.com/zhangsan88这个地址时,
nginx会把该请求转发到 https://192.168.8.8:8088这个地址上;
所以你在你的浏览器访问https://www.test.com/zhangsan88其实是在访问https://192.168.8.8:8088;
那么只要https://www.test.com 可以外网访问, 那么它就可以完成微信授权,
那么每个局域网内的ip就都可以完成完整的微信授权;