最近在学习微信小程序,而与后端通信是小程序非常重要的一个方面,而微信小程序开发版中是不可以直接识别外网生成的api接口的,所以我们需要用到一些渗透工具,这里特来记录一下。
微信小程序使用wx.request(OBJECT)来调用后端接口(作为一个后端人员,还是要学习一些前端知识的。。):
wx.request({
url: 'test.php', // 仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json' // 默认值
},
success(res) {
console.log(res.data)
}
})
这与ajax相类似。其中涉及的参数我们可以通过查看微信小程序开发文档相关内容得知。其中url就是我们要设置的接口地址,虽然我们直接设置localhost:8080/xxx调用是可以的,但是如果我们使用不同网段进行相互访问就会受到阻碍,因为小程序是规定了不可以直接访问后台的接口的,要访问已经注册的域名地址才行,这与web应用是不一样的。我们可以查看该相关说明。
为了可以直接访问本机的api接口,我们要使用内网渗透来实现。想要了解内网穿透就要先清除ip地址和内网ip的概念,ip地址是为了给网络上每个固定的主机分配一个固定的逻辑地址而设立的一种统一的地址格式,而由于32位的ip地址已经不够用了,所以提供了nat技术,我们使用一个统一的对外的ip地址与外面网络进行联系,而内部网络我们就使用内部网关技术分配ip地址,这样子内部网络互相访问的时候我们就会使用内部ip进行通信。
而内网渗透就是要通过代理来实现,所谓代理就是服务端不知道客户端是谁,如果要访问该客户端,就要通过代理服务器来实现的。因为自己电脑是内网地址,如果要通过外网访问该内网ip的话,则需要通过代理服务器来实现。
这就是内网渗透,如果需要更为详细的解释可以访问:博客:一分钟实现内网穿透
接下来就是说一下内网渗透工具ngrok来实现ip地址域名化外发,以实现微信小程序去访问。
我们首先先进行下载:https://ngrok.com/download
下载下来是个压缩包,解压就是一个工具ngrok.exe:
我们直接双击打开,然后回到官网,我们要先注册获得Authtoken,才可以使用该程序,而注册我建议直接使用github关联即可,因为ngrok服务器在外国,所以在国内注册一直有问题。
登录成功后,可以获得Authtoken:
authtoken已经被我屏蔽了,每个人都不一样,我们打开程序,输入:
ngrok authtoken yourauthtoken
然后由于我们是调试http接口8080的,所以在输入:
ngrok http 8080
就可以看到代理域名后:
我们访问http://flaxx477.ngrok.io替代原本localhost:8080来实现api接口的接入,这时候我们就可以在外网访问内网,那样子我们手机不用与电脑在同一网段(即手机用4g,电脑连wifi)也可以进行测试。
另外,要在微信小程序开发工具中设置: