微信小程序> 微信小程序网络通信一-网络小程序开发-小程序研发公司

微信小程序网络通信一-网络小程序开发-小程序研发公司

浏览量:1996 时间: 来源:___mySoul
微信小程序网络服务器网络配置1.

支持request普通网络请求。支持套接字通信WebSocket支持上传文件uploadFile支持下载文件downloadFile

回调2.

只要成功以后就会有success回调。

关于https3.

小程序必须使用https必须经过icp备案

储存4.

微信小程序有自己的本地缓存

用户信息小程序登录5.

小程序登录来一张时序图,此时序图书来自于微信官方。

6.

大概也能看懂一点,整个过程需要经过开发者服务器。其中code为临时登录凭证,先调用wx.login(Objectobject)获取临时登录凭证,及code,然后wx.request()方法将登录凭证发送到开发者服务器,开发者服务器得到code以后通过appiid和appsecret以及code将信息发送到微信接口服务,然后微信接口服务器将信息返回session_key+openid等信息,接着开发者服务器进行自定义登录态,即将登录态将openid,session_key进行关联,然后向小程序防返回自定义登录态。接着将自定义登录态存入storage。以后再次发送request的时候,将会携带开发者定义的自定义登录态,然后将自定义登录态查询openid和session_key在开发者服务器上进行查询,接着返回业务数据

7.

整个过程类似于鉴权的过程。

8.

其中session_key是对用户数据进行加密签名的密钥,即对用户数据进行加密用的。

unionID9.

unionID为用来区分用户的唯一性用的。即同一个应用对于同一个微信开发平台下的不同应用unioID为相同的。

授权10.

部分接口需要经过用户授权才能调用,如果用户授权,将会调用该接口,如果用户拒绝授权,将会调用fail的接口回调。

开放数据校验和解密11.

上面图是来自于微信官方的流程图整个关键在于session_key通过session_key对数据进行签名和加密,然后整个传送到开发者服务器,在开发者服务器上进行解密操作,即使用session_key进行解密。整个过程全程加密,确保了信息在中途不能被截获,不能被伪造,即确保了信息的安全。

数据签名校验12.

微信会对明文传输的数据进行签名,开发真根据这些对明文的数据进行签名校验,防止数据被篡改。

13.

签名算法sha1一种哈希签名算法,目前已经被证实可以被碰撞。即被google证实两份内容不同但是SHA-1会完全相同的碰撞实验https://zh.wikipedia.org/zh-sg/SHA-1

微信小程序HTTP网络通信14.

小程序需要使用网络通信,从后台拉取信息。

搭建后台服务器15.

后台服务器使用node.js外加nginx进行转发,在node.js上为了方便起见,直接不配置https证书,在nginx上配置https证书,为了防止出现意外,所有的node.js暴露出的端口都在内网,只暴露nginx的接口如下

node.js-nginx-微信小程序配置node.js16.

进行npm安装koa框架,并暴露出端口

17.

由于比较懒,就不用docker了,直接上服务器上npm,在说,本身也就一台服务器,用不上docker,服务器配置还有点低,目前有三台,一台腾讯云,配置blog,一台灯塔国的,配置ss服务,一台阿里云的供自己折腾,

域名解析18.

解析出域名api.iming.info用于进行api

服务器配置nginx19.

nginx添加网站,并添加ssl证书添加http://127.0.0.1:1937进行反向代理

pm220.

接着pm2管理器,添加pm2进行管理

安装npm包21.

按照规范,是应该使用docker进行的,然后git上传,在服务器端用git直接拉下来。这里呢,只有一台机器,直接省事,整个过程应该是全程自动化的,╮(╯▽╰)╭

22.

进入目录,进行npm

[root@xiaoapi.iming.info]#npminstall--savekoanpmWARNsaveErrorENOENT:nosuchfileordirectory,open'/www/wwwroot/api.iming.info/package.json'npmnoticecreatedalockfileaspackage-lock.json.Youshouldcommitthisfile.npmWARNenoentENOENT:nosuchfileordirectory,open'/www/wwwroot/api.iming.info/package.json'npmWARNapi.iming.infoNodescriptionnpmWARNapi.iming.infoNorepositoryfield.npmWARNapi.iming.infoNoREADMEdatanpmWARNapi.iming.infoNolicensefield.+koa@2.5.3added40packagesin58.543s[root@xiaoapi.iming.info]#23.

在目录下新建app.js

constkoarequire('koa');constappnewkoa();constmainctx{ctx.response.body"helloworld";};app.use(main);app.listen(1937);24.

接着用pm2管理器,启动app.js

25.

接着访问https://api.iming.info/出现helloworld的json格式的数据即完成最基础的node.js服务器搭建

微信后台添加域名26.

进入后台,添加api.iming.info

27.

好吧,是省事了,直接将上传域名,下载域名全部添加为同一个域名了,事实上还是可以再分开的,在分开为上传的一个域名,下载的一个域名,只需要添加request域名即可。下一篇,继续进行前后端通信

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎