问答

本地调试微信公众号开发,获取openid,需要公网访问本地吗 ?

作者:admin 2021-07-13 我要评论

就是微信app弹出 提示 用户授权,点击确认后 , 下一步流程是公网访问本地吗 ? https://open.weixin.qq.com/ connect/oauth2/authorize?appid='.$appid.'redire...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

就是微信app弹出 提示 用户授权,点击确认后 , 下一步流程是公网访问本地吗 ?

https://open.weixin.qq.com/ connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.urlencode($redirect_uri).'&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect';

上面微信授权弹窗URL 里面的这个 redirect_url 参数的域名 是不是 就是我在微信后台配置 “授权回调页面域名” 的那个 ? 比如我微信后台配置成 www.a.com(假如互联网能访问) , 然后我的 $redirect_uri 必须写成 www.a.com/xxxxxx 吗 , 但是我要在本地调试 , 本地我随便配置一个域名 local.com , 本地调试用户授权的时候 , $redirect_uri 能不能写成 local.com/xxxxxx ?

QQ图片20200620120303_看图王.jpg

###

可以本地调试,但是绑定域名的时候要有公网环境。
例如已经有了公网环境,域名为abc.com
去微信公众平台配置好abc.com
修改本机host文件,将abc.com映射到本地127.0.0.1
这时候再打开微信开发者工具,就是访问的本地环境了。
需要调试微信接口什么的很方便,本地一改立马生效。

###
  1. 基本上,没有哪里需要公网访问本地
  2. openid 需要服务器从微信处获取,所以你需要访问公网
###

不需要搭建任何外网服务器

  1. 授权回调页域名填写你本地 IP +端口即可,比如你的 HTTP 服务器是再8080端口,你的 IP 是 192.168.1.100,那你填写 192.168.1.100:8080即可
  2. 假设你的redirect_uri 是 http://192.168.1.100:8080/oauth/callback,微信授权完成后会回调到 http://192.168.1.100:8080/oauth/callback?code=xxx,你拿着 code 去微信服务器请求 access_token 即可
###

3种解决方法
1、自己使用 frp 搭建内网穿透环境,让外网 HTTP(S)直接请求到本地服务器资源;
2、修改/etc/hosts 文件(若在linux或 mac 之下),增加对应的虚拟域名映射和 nginx server 块的配置;
3、使用免费的 ngrok 内网穿透工具(很简洁),但是每次关掉 cli 界面之后会重新生成外网地址,并且还有请求数量的限制。

注意事项:可能需要 SSL 证书支持的话,可以使用一下 certbot 的免费证书。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 古纳于vue按下拖动元素

    古纳于vue按下拖动元素

  • Angular 项目编译并部署生产模式

    Angular 项目编译并部署生产模式

  • element-ui   表达验证时的问题

    element-ui 表达验证时的问题

  • iOS 中的静态库的作用是什么?

    iOS 中的静态库的作用是什么?

腾讯云代理商
海外云服务器