场景
在我的很多版本的答题小程序中,对于 用户授权都是统一个逻辑:
用户授权后,将授权的userInfo信息记录到数据集合profiles中,那么每次启动页都要根据是否有授权进行以下逻辑处理
1、如果授权,直接跳到首页
2、如果未授权,跳转到授权页面
具体的启动界面如下所示
问题:
那么如何判断是否授权过呢
之前解决方案
之前的方案是:
每次在启动页拿到openid,当点击跳转按钮的时候,将openid和所有已授权的用户openid进行匹配,如果indexOf==-1那么是没有授权过的,如果indexOf!=-1,那么是授权过了。
当前解决方案存在的弊端
在实际过程中,发现小程序端用户查询只能返回20条,云函数端返回1000条,当用户多的时候,需要一次遍历整个库的过程,这种方案显然非常不可取,
优化后的方案
今天改为如下的方案,就是拿openid直接去查询count看看count是否为0,如果为0那么是未授权的用户,如果为1那么证明是授权过的。
座右铭
专心做好在线答题小程序
好好学习,天天向上,每天进步一点点
不是不能一上来就要求授权的吗,你这样写的话是不是没授权就用不了呢?
授权登陆过一次后setStorage本地一个标志,以后直接读取这个标志,有的话直接跳转。就不用网络请求或者执行云函数了。