dkvirus / py-novel

看小说。服务端:【Python+Flask+Mariadb】、【Node+Express+Mariadb】;客户端:【Vue+iview】、【微信小程序】、【Android原生开发(Java)】、【Flutter+Dio】、【Taro+Typescript】
MIT License
129 stars 50 forks source link

多端统一和API升级 #10

Closed dkvirus closed 5 years ago

dkvirus commented 5 years ago

多端

登录方式

小程序端内嵌在微信/支付宝里面,不需要登录,下面登录方式针对 移动端网页端

多端统一

小程序端:进入 公羊阅读 小程序,并往 我的书架 加入了几本小说,在阅读每本小说时会记录阅读到第几章节,下一次会接着阅读。

同一个人,提供手机 app 和网页端进入的方式,需求是:通过 app 和网页进入能加载小程序端的数据,如:显示小程序里书架里已有的小说,从小程序的阅读记录开始继续阅读等。

接口设计

server_python 不改动,提供 /api/v1 版本的接口。新建 server_node_express 工程提供 /api/v2 版本接口。

手机号注册相关接口

检测手机号是否注册,未注册 => 服务端往手机号发送验证码 => 用户输入验证码,服务端判断是否正确,若正确,即注册成功。

绑定邮箱相关接口

验证邮箱是否已注册,未注册 => 服务端往邮箱发送一封验证邮件 => 规定时间内点击验证邮件中的链接即完成验证操作。

绑定用户名

书架相关接口

搜索相关接口

其它查询接口

安全方面

之前的接口通过抓包可以看到请求地址,并随意调用接口,有恶意不间断发送请求的风险。改良设计如下:

表结构设计

TODO

dkvirus commented 5 years ago

多端统一存在的问题

电商项目收货地址 为例。

当在小程序端绑定手机号 => 为了就是和手机端共享数据。收货地址这个模块就存在歧义,到底是以小程序端的默认地址为主,还是以手机端的默认地址为主。不管以那一边为主更新数据,都有点帮用户做决定的感觉。这是不好的。

多端统一真的能统一吗?

要解决上面提出的问题,唯一的做法就是:小程序端在填写收货地址之前就必须要绑定手机号进行数据共享。甚至是一进入小程序就让用户绑定手机号,如果这么做,造成的用户体验非常糟糕。

结论:非要实现多端统一,是可以的,但用户体验非常糟糕。

公羊阅读怎么选

本来整这个应用就是方便看小说,用户体验永远放在第一位。可以提供多端,但不做数据共享了。可以提供第三方登录,但登录之后相当于一个新的用户。

dkvirus commented 5 years ago

邮箱和手机短信验证码在服务端需要短时间保留,之前准备用 express-session 中间件做的,但调研发现当重启 node 应用时,express-session 里的东西会消失。考虑使用 node-redies 中间件,本地数据库,重启服务数据不会丢失。

dkvirus commented 5 years ago