背景:
昨天不小心发布了个版本,导致getUserProfile接口目前不可用了(官方说是11.9就回收该功能?)
进展1:
- 查看文档,需要用 input type="nickname" 和 button open-type="chooseAvatar" 代替 getUserProfile 。
- 开始尝试更改以及修复,简单写个页面处理。
进展2:
用户信息页面,这个很容易写,但是本身流程带来更多问题:
- input和chooseAvatar会自己检测内容安全,导致数据是异步的,且无法知道数据更新的整个流程,导致我可能拿到的数据是不安全的。例如我修改input后,点击一个自己的按钮返回。这时候可能直接返回,而且数据是检测前的数据,所以数据依旧不安全。
- 本地会检测内容安全,但是我服务端也要做这个,因为我们不仅仅要防君子,也要防小人,如果有人自己调用接口该成敏感数据,那也很麻烦,所以我还需要在服务端再做一次这些事情。
- 针对以上2点,基本这个方案里的input nickname和chooseAvatar都是没用的,不如自己写input 框,获取数据后在上传服务端验证。
- 对于avatar的数据,在选择后获取的是本地路径,而且可以选择各种图片,意味着我还要做各种裁剪,裁剪后我还需要上传图片,图片还要在服务端做内容安全检测,然后把图片存起来,让cdn可以访问到。这一套流程下来,成本直线上升。
总结:
而getUserProfile基本上数据都在微信端,然后数据共享出来给小程序业务方用而已。
而这个方案本质其实根本就是让开发写一套自己的用户信息存储方案,包括数据检测,存储等,从针对内容安全,数据存储等逻辑来看基本就是业务自己实现自己的用户信息机制,和微信一点关系都没有了,还美其名说提供 nickname, chooseAvatar 等给到用户,其实这些就是鸡肋,和我自己写个input啥的区别不大,至少业务形态是一样。
未来微信是只打算给个openId了吗。
微信也要遵循《隐私保护法》啊, 相信微信会不断优化小程序的用户授权机制的。遇到这种情况也没办法,只好辛苦开发者了。