济宁网站建设济宁,天津网站推广外包,html5网页模板代码,深圳全网营销公司有哪些目录 1 判断用户是否登录2 创建事件流3 获取不到Userid的问题4 权限控制整体效果 我们上一篇讲解了用户注册的功能#xff0c;当用户注册完毕的时候再次打开小程序的时候就需要验证权限。权限分为两类#xff0c;第一类是判断用户是否注册#xff0c;第二类是当前用户具备什… 目录 1 判断用户是否登录2 创建事件流3 获取不到Userid的问题4 权限控制整体效果 我们上一篇讲解了用户注册的功能当用户注册完毕的时候再次打开小程序的时候就需要验证权限。权限分为两类第一类是判断用户是否注册第二类是当前用户具备什么角色可以访问哪些功能。 1 判断用户是否登录
当前用户在打开小程序的时候如何判断用户是否登录呢?这就要用到页面的生命周期函数。所谓生命周期是指从小程序启动、打开、关闭全过程可以触发的事件。
打开我们的自定义应用点击页面管理点击事件 有两个事件可供设置一个是页面加载一个是页面显示。那要在哪个事件里配置呢一般是放在页面显示里因为页面加载只执行一次如果在其他页面改变了用户的状态再次回到首页的时候事件就不执行了。
点击页面显示我们设置一下调用数据源方法 然后选择用户信息数据源方法选择查询单条 然后设置查询条件让我们的创建人等于我们当前登录用户的userid 查询结果需要赋值给一个对象我们在左侧的代码区新建一个全局变量user类型选择对象 然后将出参赋值给我们的user对象 赋值成功后增加一个分支事件 给逻辑分支增加判断条件
If(Object.keys($w.app.dataset.state.user).length0, true, false)表达式的意思是判断对象的属性是否为空如果不为空返回true为空返回false
在条件满足时我们给变量isLogin赋值为true不满足是赋值为false
2 创建事件流
现在设置在页面显示事件有个问题是弹窗会一闪而过我们在页面加载的时候也设置一下权限判断的逻辑。
但这种重复设置一遍就有点啰嗦了在微搭中像这种很多地方都需要调用的我们可以把设置放入事件流里。
在左侧代码区里新建一个事件流 设置方法和我们上边的保持一致 在页面加载的时候调用一下事件流
3 获取不到Userid的问题
实际测试按照这种方案去做存在的问题是拿不到用户的Userid创建人的话会自动分配一个ID 为了解决这个问题可以有两种方案一种是切换成小程序用小程序的openid来实现权限的过滤另外一种是设置登录访问在应用左侧的导航面板我们切换到应用设置-访问控制启用我们的登录后访问即可 这样用户在打开应用的时候要先获取验证码然后再使用功能就可以正常获取到Userid了
4 权限控制
登录问题解决后我们就需要判断一下用户的角色了因为我们的用户是需要等待管理员审核开通的那就先需要从用户的状态获取一下显示信息
在首页加入两个普通容器每个普通容器放置一个文本组件 第一个文本组件的内容改为已经申请请等待管理员审核第二个文本组件的内容改为审核通过 在第一个普通容器绑定条件展示当我们的状态为1的时候显示 给第二个普通容器绑定条件展示当我们的状态为2的时候显示
整体效果
先登录首页提示用户需要注册注册返回首页显示等待管理员审核审核完毕后再次打开页面显示审核通过