【小程序开发记录】如何判断用户是否已授权
发布于 4 年前 作者 odai 1265 次浏览 来自 分享

场景

在我的很多版本的答题小程序中,对于 用户授权都是统一个逻辑:

用户授权后,将授权的userInfo信息记录到数据集合profiles中,那么每次启动页都要根据是否有授权进行以下逻辑处理

1、如果授权,直接跳到首页

2、如果未授权,跳转到授权页面

具体的启动界面如下所示



问题:

那么如何判断是否授权过呢

之前解决方案

之前的方案是:

每次在启动页拿到openid,当点击跳转按钮的时候,将openid和所有已授权的用户openid进行匹配,如果indexOf==-1那么是没有授权过的,如果indexOf!=-1,那么是授权过了。

当前解决方案存在的弊端

在实际过程中,发现小程序端用户查询只能返回20条,云函数端返回1000条,当用户多的时候,需要一次遍历整个库的过程,这种方案显然非常不可取,

优化后的方案

今天改为如下的方案,就是拿openid直接去查询count看看count是否为0,如果为0那么是未授权的用户,如果为1那么证明是授权过的。

座右铭

专心做好在线答题小程序

好好学习,天天向上,每天进步一点点

2 回复

不是不能一上来就要求授权的吗,你这样写的话是不是没授权就用不了呢?

授权登陆过一次后setStorage本地一个标志,以后直接读取这个标志,有的话直接跳转。就不用网络请求或者执行云函数了。

回到顶部