现在公司有产品主要功能再 admin 页面,但是有部分功能在 app 端(基本逻辑就是 admin 进行相关的功能配置,app 端点击执行功能),客户有 5-10 个,每个客户都需要在自己的内网机房建服务端,然后开放 app 相关的 api 到公网
因为维护各个版本的安卓 /ios 包比较吃力,想转为微信小程序
逻辑大概是这样:
用户在选择服务器通过认证后可以绑定微信 以后再次打开小程序会自动连接到该服务器
这种模式可行吗?如果不可行的话有没有其它的方案可以解决?
1
yitingbai 2021-05-21 17:09:13 +08:00
微信小程序运行期间不可以改服务器地址, 但是你可以这么做, 服务端 api 中转到不同的目标服务器, 切换逻辑在服务端
|
2
HashV2 OP 没做过微信小程序开发,但是有前端经验
两个星期能速成不?(这个 app 特别简单,只有登陆页面+列表页,只要对接大概五六个接口即可) |
6
joooooker21 2021-05-21 17:16:42 +08:00
可以用 nginx 做反向代理 , 小程序请求后台接口时带上客户标识即可
|
7
yitingbai 2021-05-21 17:16:55 +08:00
@HashV2 肯定要有一台服务器和小程序通讯啊, 如果业务非常简单, 也不必再写一个中转服务端, 直接用 nginx 转发到不同的目标服务器即可,
|
9
HashV2 OP @yitingbai #7 了解了 app 部分的业务确实非常简单 中转服务器只需要部署 nginx 的话确实非常可行 因为给的开发周期不是很长 不想再写一个应用去做认证和分发 能在原代码上更新对接一下微信的认证就很好
|
10
HashV2 OP 感觉总的来说挺可行的 下班了 周一再回帖
|
11
winnerczwx 2021-05-21 18:55:03 +08:00
@yitingbai #1 楼主说是在内网自建服务器, 中转应该是不行的吧
|
12
jame 2021-05-21 20:27:08 +08:00
flutter 了解一下
|
13
aristolochic 2021-05-21 20:35:57 +08:00
所以……就是 Multi tenant 呗
Web 实现的多租户还是太野了吧,就算有微信的绑定啥的 建议还是加个 API 网关吧。不加网关你的合法域名要加到多长啊,现在客户数量少,以后呢? |
14
ch2 2021-05-21 20:50:54 +08:00
小程序发请求必须域名 https+备案+后台白名单(有个数限制),你这想法一看就不靠谱
|
15
Felldeadbird 2021-05-21 21:59:37 +08:00
中转服务器啊。
小程序 发送给 微信小程序管理后台绑定的域名 绑定的域名将数据 转发 给 对应的域名。 |
16
TimeRain 2021-05-21 22:46:33 +08:00
直接云开发吧
|
17
musi 2021-05-21 22:55:35 +08:00
可以借助云函数做中转,就不必硬上一个中装服务器了
|
18
OHyn 2021-05-21 23:21:57 +08:00
如果这些服务都加了白名单,那 ok ;
无非是动态处理一下请求地址的问题。但我记得小程序白名单编辑次数有限制? 所以为了方便,还是自己做个反向代理吧。 |
19
no1xsyzy 2021-05-22 00:49:33 +08:00
@winnerczwx 内网倒是可以自己 mitm 自己,就是那个经典的「外网访问则找到公网走路由器端口映射,内网则不经过路由直接访问服务器」的问题。但是客户网络环境是否允许你这么做也是问题。
|
20
nekochyan 2021-05-22 14:36:27 +08:00
微信小程序必须用 https 发请求,并且以前是有 20 个白名单限制,不过现在已经取消了 20 个限制了,具体上限是多少就不知道,可以去微信小程序文档看看
|
23
musi 2021-05-24 08:55:09 +08:00
@HashV2 对,使用云函数做分发,唯一的学习成本可能就是学一下 Node.js 了,小程序每个月还有一定的免费额度,用户量不大的话刚刚好
|
24
xiaoyiyu 2021-05-30 22:43:28 +08:00 via iPhone
曲线模式,自己的小程序授权自己的第三方服务,然后通过前端输入的域名,通过第三方接口增加服务域名配置。
例如:小程序 A, 服务商 B 均为同一家公司,小程序 A 使用 a.com 提供服务,在小程序 A 内可以通过 a.com/change 提交用户需要的域名 b.com ,a.com 服务端收到请求后调用服务商 B 的修改小程序域名接口增加 b.com;同时前端修改请求域名为 b.com 。 相关文档: https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Mini_Program_Basic_Info/Server_Address_Configuration.html 目前支持 1000 个域名,各类请求各 200 |