订水商城H5实战教程-05权限控制

目录

  • 1 判断用户是否登录
  • 2 创建事件流
  • 3 获取不到Userid的问题
  • 4 权限控制
  • 整体效果

我们上一篇讲解了用户注册的功能,当用户注册完毕的时候再次打开小程序的时候就需要验证权限。权限分为两类,第一类是判断用户是否注册,第二类是当前用户具备什么角色,可以访问哪些功能。

1 判断用户是否登录

当前用户在打开小程序的时候,如何判断用户是否登录呢?这就要用到页面的生命周期函数。所谓生命周期,是指从小程序启动、打开、关闭全过程可以触发的事件。

打开我们的自定义应用,点击页面管理,点击事件
在这里插入图片描述
有两个事件可供设置,一个是页面加载一个是页面显示。那要在哪个事件里配置呢?一般是放在页面显示里,因为页面加载只执行一次,如果在其他页面改变了用户的状态,再次回到首页的时候事件就不执行了。

点击页面显示,我们设置一下调用数据源方法
在这里插入图片描述然后选择用户信息数据源,方法选择查询单条
在这里插入图片描述
然后设置查询条件,让我们的创建人等于我们当前登录用户的userid
在这里插入图片描述
查询结果需要赋值给一个对象,我们在左侧的代码区新建一个全局变量user,类型选择对象
在这里插入图片描述
然后将出参赋值给我们的user对象
在这里插入图片描述
赋值成功后,增加一个分支事件
在这里插入图片描述
给逻辑分支增加判断条件
在这里插入图片描述

If(Object.keys($w.app.dataset.state.user).length>0, true, false)

表达式的意思是判断对象的属性是否为空,如果不为空返回true,为空返回false

在条件满足时,我们给变量isLogin赋值为true,不满足是赋值为false
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 创建事件流

现在设置在页面显示事件,有个问题是弹窗会一闪而过,我们在页面加载的时候也设置一下权限判断的逻辑。

但这种重复设置一遍就有点啰嗦了,在微搭中像这种很多地方都需要调用的,我们可以把设置放入事件流里。

在左侧代码区里新建一个事件流
在这里插入图片描述
设置方法和我们上边的保持一致
在这里插入图片描述
在页面加载的时候调用一下事件流
在这里插入图片描述
在这里插入图片描述

3 获取不到Userid的问题

实际测试,按照这种方案去做存在的问题是拿不到用户的Userid,创建人的话会自动分配一个ID
在这里插入图片描述
为了解决这个问题可以有两种方案,一种是切换成小程序,用小程序的openid来实现权限的过滤,另外一种是设置登录访问,在应用左侧的导航面板我们切换到应用设置-访问控制,启用我们的登录后访问即可
在这里插入图片描述
这样用户在打开应用的时候要先获取验证码,然后再使用功能就可以正常获取到Userid了

4 权限控制

登录问题解决后我们就需要判断一下用户的角色了,因为我们的用户是需要等待管理员审核开通的,那就先需要从用户的状态获取一下显示信息

在首页加入两个普通容器,每个普通容器放置一个文本组件
在这里插入图片描述
第一个文本组件的内容改为已经申请,请等待管理员审核,第二个文本组件的内容改为审核通过

在这里插入图片描述
在这里插入图片描述
在第一个普通容器绑定条件展示,当我们的状态为1的时候显示
在这里插入图片描述
给第二个普通容器绑定条件展示,当我们的状态为2的时候显示
在这里插入图片描述

整体效果

先登录首页,提示用户需要注册,注册返回首页,显示等待管理员审核,审核完毕后再次打开页面显示审核通过
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D RPG Course | Core 学习日记二:PolyBrush / Pro Builder构建场景

前言 我们这次将要学习的是使用PolyBrush和Pro Buillder构建精美的游戏场景。 PolyBrush 在Package Manager中导入的时候要注意,将Shader Examples(URP)也一起导入,不然PolyBrush对URP渲染的素材进行操作时会出现问题。 导入完成之后在Tools里将…

【智能座舱系列】- 深度解密小米Hyper OS,华为HarmonyOS区别

上一篇文章《小米的澎湃OS到底牛不牛?与鸿蒙系统之间差距有多大》,从多个方面比较了小米Hyper OS 与 华为HarmonyOS的区别,本篇文章继续从架构层面深度解读两者本质的区别。 小米澎湃OS是“以人为中心,打造人车家全生态操作系统”,该系统基于深度进化的Android以及自研的V…

C/C++网络编程基础知识超详细讲解第二部分(系统性学习day12)

懒大王感谢大家的关注和三连支持~ 目录 前言 一、UDP编程 UDP特点: UDP框架: UDP函数学习 发送端代码案例如下: 二、多路复用 前提讲述 select poll 三、图解如下 总结 前言 作者简介: 懒大王敲代码,…

7 款用于解锁iPhone密码的苹果解锁软件

无法访问您的 iPhone 一定是最烦人的情况之一。 即使您以前从未遇到过这种情况,做好准备总是一个好主意,而不是在它发生时感到无助。事实上,这种情况经常发生并且可能有很多实例,例如忘记密码或购买锁定的二手 iPhone。 牢记 Ap…

表白墙/留言墙 —— 初级SpringBoot项目,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学

🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程 目录 项目前端页面展…

CTFHub | MySQL流量、Redis流量、MongoDB流量的WriteUp

文章目录 MySQL流量题目题解 Redis流量题目题解 MongoDB流量题目题解 数据库类流量题需要用到Wireshark截取数据包,然后进行分析。 WireShark是非常流行的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程…

python采集电商jd app搜索商品数据(2023-10-30)

一、技术要点: 1、cookie可以从手机app端用charles抓包获取; 2、无需安装nodejs,纯python源码; 3、搜索接口为:functionIdsearch; 4、clientVersion "10.1.4"同时也支持更高的版本; …

“道法自然——徐铭中国画展”在中国美术馆隆重开幕

10月28日上午,“道法自然——徐铭中国画作品展”在中国美术馆隆重开幕。本次展览由中国科学院大学、民盟中央美术院联合主办。第十四届全国人大常委会委员、财政经济委员会副主任委员、民盟中央副主席谢经荣,第十四届全国政协副秘书长、民盟中央副主席、…

数字孪生智慧工厂三维可视化系统解决方案,打造新一代智慧工厂

在制造业的快速发展和数字化转型的时代,智慧工厂已经成为制造企业前进的必经之路。数字孪生技术,作为工业数字化转型的核心动力,为打造智慧工厂提供了关键支持。其中,数字孪生智慧工厂三维可视化系统解决方案无疑是制造企业的得力…

2023深耕kotlin,谈谈前景

为什么学习kotlin? Kotlin 早就已经是 Google 官方推荐的开发语言了,而且 Android 新的 Compose 框架只支持 Kotlin ,在 Google 那里,Android开发中 Java 其实已经被淘汰了。Java 和 Kotlin 虽然都属于高级语言,但是 …

Python 自动化测试全攻略:五种自动化测试模型实战详解!

随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用。 与传统的手工测试技术相比,自动化测试具备了良好的可操…

iPhone无法关机未必是坏了!如何修复无法关闭的iPhone

iPhone运行很慢且发热是一个比较罕见的情况,但如果它发生在你身上,下面解释了发生的原因以及你如何修复它。 iPhone无法关闭的原因 iPhone无法关闭的最可能原因是: 由于软件问题,它被冻结了。 睡眠/唤醒按钮坏了。 屏幕坏了&a…

服务器感染了.mxdown-V-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

尊敬的读者: 在当今数字化时代,网络犯罪的阴谋在虚拟世界中蔓延,mxdown-V-XXXXXXXX、.vollhavhelp-V-XXXXXXXX、.arricklu-V-XXXXXXXX勒索病毒是其中的恶梦般存在,这三种勒索病毒均属于同一个勒索病毒家族旗下。这种勒索病毒以其…

真心话坦白局系统源码

它具有匿名信息的神秘感 但又会给你一点小提示 能让你有无限挖掘下去的好奇感 也能让你说出那些不敢说出口的话 敢来一场坦白局吗! 坦白局这个功能类似于悄悄话,只不过是匿名的悄悄话。 有时候我们有些话是开不了口的,坦白局给了我们一个…

【音视频|PCM】PCM格式详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

jenkins详细安装教程

这里写目录标题 一、Jenkins安装与部署1-1、Jenkins的简介1-2、下载需要的软件1-2-1 jekins.war1-2-2 tomcat安装方式 1-3、使用11版本的jdk1-4、开启jenkins1-5、获取密码1-5 修改镜像(可改可不改) 二、卸载Jenkins 一、Jenkins安装与部署 1-1、Jenkins的简介 Jenkins是一个…

比较浮点数时,我被绊倒了

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不是…

C++之string

C之string #include <iostream>using namespace std;/*string();//创建一个空的字符串string(const char* s);//使用字符串s初始化string(const string& str);//使用一个string对象初始化另外一个string对象string(int n,char c);//使用n个字符c初始化*/void test1()…