微信小程序自己的网站-微信小程序网络通讯(一)

店铺

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

用户信息

小程序登录

登录小程序后,有一个时序图,这个时序书来自于陌陌官网。

我大概能理解一点,整个过程需要经过开发者服务器。

其中code为临时登录账本,

首先调用wx.login(Object object)获取临时登录账本和代码,然后wx.request()方法将登录账本发送给开发者服务器,开发者服务器将信息通过appiid发送给陌生人,appsecret和code拿到code Momo socket服务后,然后Momo socket服务器返回session_key + openid等信息,然后开发者服务器进行自定义登录状态,将登录状态下的openid和session_key关联起来,然后返回小程序的自定义登录状态。

然后将自定义登录状态保存到存储中。

以后再次发送请求时,会携带开发者定义的自定义登录状态,然后在开发者服务器上查询自定义登录状态的openid和session_key,然后返回业务数据

整个过程与信令过程类似。

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

联盟ID

unionID用于区分用户的唯一性。 即同一个应用程序在同一个Momo开发平台下,不同的应用程序具有相同的unioID。

授权的

有些套接字只有在用户授权后才能调用。 如果用户授权,套接字将被调用。 如果用户拒绝授权,将调用失败套接字。

开放数据校准和揭秘

上图来自Momo官方流程图

整个密钥是session_key通过session_key对数据进行签名加密,然后将整个数据传输到开发者服务器,在开发者服务器上进行解密操作,即使用session_key进行解密。 整个过程进行加密,保证信息在中间不能被夺取或伪造,即保证了信息的安全。

数据签名校准

微信会对明文传输的数据进行签名,开发者会通过这种方式对明文数据进行签名和校准,防止数据被篡改。

签名算法sha1是哈希签名算法,已被证明是可碰撞的。即谷歌否认两份内容不同,SHA-1会完全相同碰撞实验微信小程序HTTP网络通信

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

搭建后台服务器

后台服务器使用node.js加nginx进行转发。 为了方便,在node.js上没有直接配置https证书,而是在nginx上配置https证书。 为了避免意外,node.js暴露的端口全部是外网,只暴露nginx的socket

如下

node.js -> nginx -> 微信小程序

配置node.js

执行npm安装koa框架并暴露端口

因为我很懒,所以不需要docker。 我直接去服务器上的npm。 换句话说,它本身只是一个服务器,我不需要docker。 服务器配置还是有点低。 目前有三个微信小程序自己的网站,一个是腾讯云的,配置博客,一个是灯塔国的,配置ss服务,自己用阿里云的一个。

域名系统

解析api.iming.info域名为api

服务器配置

nginx

nginx添加网站,并添加ssl证书

添加:1937 用于反向代理

颗粒物

然后pm2 manager,添加pm2进行管理

安装 npm 包

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

进入目录并执行npm

[root@xiao api.iming.info]# npm install --save koa
npm WARN saveError ENOENT: no such file or directory, open '/www/wwwroot/api.iming.info/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/www/wwwroot/api.iming.info/package.json'
npm WARN api.iming.info No description
npm WARN api.iming.info No repository field.
npm WARN api.iming.info No README data
npm WARN api.iming.info No license field.
+ koa@2.5.3
added 40 packages in 58.543s
[root@xiao api.iming.info]#

在目录下新建app.js

const koa = require('koa');
const app = new koa();
const main = ctx => {
	ctx.response.body = "hello world";
};
app.use(main);
app.listen(1937);

然后使用pm2管理器启动app.js

然后访问json格式的数据,其中出现hello world,完成最基本的node.js服务器设置

微信后台添加域名

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

嗯,这很容易。 您可以直接将上传域名和下载域名添加为同一个域名。 其实微信小程序自己的网站,他们还可以再次分开。 当上传域名和下载域名分离时,只需添加请求域名即可。 。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站程序 微信小程序自己的网站-微信小程序网络通讯(一) https://www.wkzy.net/game/169038.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务