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

news2024/11/17 14:24:10

目录

  • 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.coloradmin.cn/o/1150716.html

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

相关文章

什么是鉴权?一篇文章带你了解postman的多种方式

一、什么是鉴权? 鉴权也就是身份认证,就是验证您是否有权限从服务器访问或操作相关数据。发送请求时,通常必须包含相应的检验参数以确保请求具有访问权限并返回所需数据。通俗的讲就是一个门禁,您想要进入室内,必须通…

windows应用软件扫描报告 不告谱 要钱

chatGPT开路,帮找。 当你想要查找Windows软件的漏洞而不涉及查看源代码时,你可以使用一些专门设计用于扫描漏洞的工具。这些工具通常会检查已安装的软件和操作系统的漏洞,并提供建议或修补程序。以下是一些可以用于查找Windows软件漏洞的工具…

数据结构之顺序表详解

hello,大家好,今天的内容是关于顺序表的,其实之前也发过文章,但是那个时候水平还是差了一点,有些地方不是很详细,这次会把每个点都讲清楚,也当给自己在复习一遍。 顺序表在本质上就是数组&#…

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

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

SpringMVC Day 07 : 表单验证

前言 表单验证在Web开发中是非常常见和重要的一部分,它用于确保用户提交的数据符合预期的规则和限制。 通过表单验证,我们可以有效地捕获并处理用户输入中的错误或不正确的数据,从而提高应用程序的数据质量和用户体验。在本教程中&#xff…

Gerrit 事件监听实现

环境 Centos 7.9 Gerrit 2.15 Gerrit 2.15容器搭建 docker-compose.yml version: 3 services:gerrit:image: gerritcodereview/gerrit:2.15ports:- 8080:8080- 29418:29418volumes:- ./review_site:/var/gerrit/review_siteenvironment:- CANONICAL_WEB_URLhttp://localhos…

.jnlp

首先配置电脑的java环境。 百度搜索jre下载,会有很多结果,一般选择官网进行下载。 下载正确的jre版本。 我的电脑是windows 64位,根据你自己电脑的情况选择版本进行下载。不懂自己电脑是多少位的可以看下一步。 查看电脑是64位还是32…

并行和并发有什么区别?

并行和并发 并行和并发最早其实描述的是 Java 并发编程里面的概念。他们强调的是 CPU 处理任务的能力。简单来说: 并发,就是同一个时刻,CPU 能够处理的任务数量,并且对于应用程序来说,不会出现卡顿现象。并行&#x…

如何改善设备综合效率(OEE)并提高工厂的生产力

在现代制造业中,提高设备综合效率(Overall Equipment Efficiency,OEE)是企业追求高效生产和优化生产能力的重要目标之一。OEE是一个关键的绩效指标,可以帮助企业评估设备的利用效率、生产效率和质量水平。本文将从三个…

ERROR: There can be only one Game target per project.

UATHelper: Packaging (Windows (64-bit)): ERROR: There can be only one Game target per project. D:\dock\Intermediate\Source 把旧的文件删去 一般会出现在更改项目名称后 感谢 There can be only one Game target per project - Development Discussion / Content C…

YOLOv8修改特征金字塔(替换SPPF模块)

1.引言 1.1 引言 修改特征金字塔模块,即SPPF模块是YOLOv8改进中非常常见的一个改进点。 以下将介绍如何在yolov8中修改SPPF模型。 2.2 常见特征金字塔模块 常见特征金字塔可以看此贴:常见特征金字塔模块代码实现 1.3 本文示例 本文使用SimSPPF模块…

JAVA 学习笔记——抽象类

概念: 当定义一个类时,常常需要定义一些成员方法来描述类的行为特征,但有时这些方法的实现方式是无法确定的。 例如,前面在定义 Animal 类时,walk()方法用于描述动物的行走行为,但是针对不同的动物&#…

用友 GRP-U8 存在sql注入漏洞复现

0x01 漏洞介绍 用友 GRP-U8 license_check.jsp 存在sql注入,攻击者可利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。 fofa:app”用友-GRP-U8” 0x02 POC: /u8qx/license_check.jsp?kj…

Leetcode—2562.找出数组的串联值【简单】

2023每日刷题&#xff08;十四&#xff09; Leetcode—2562.找出数组的串联值 实现代码 long long findTheArrayConcVal(int* nums, int numsSize){int left 0;int right numsSize - 1;long long sum 0;while(left < right) {if(left right) {sum nums[left];break;}…

Linux启动之uboot分析

Linux启动之uboot分析 uboot是什么&#xff1f;一、补充存储器概念1.存储器种类1.norflash - 是非易失性存储器&#xff08;也就是掉电保存&#xff09;2.nandflash - 是非易失性存储器&#xff08;也就是掉电保存&#xff09;3.SRAM - 静态随机访问存储器 - Static Random Acc…

Matlab | 基于二次谱提取地震数据的地震子波

本文通过地震数据二次谱求取地震子波谱&#xff0c;具体方法如下&#xff1a; MATLAB代码实现如下&#xff1a; function w SndSpecExtWavelet(x, M) % 功能&#xff1a;基于二次谱提取输入地震数据data的地震子波wavelet % Extracting Wavelet from Input Seismic Dat…

高等数学啃书汇总重难点(八)向量代数与空间解析几何

持续更新&#xff0c;高数下第一章&#xff0c;整体来说比较简单&#xff0c;但是需要牢记公式&#xff0c;切莫掉以轻心~ 一.向量平行的充要条件 二.向量坐标的线性运算 三.向量的几何性质 四.数量积 五.向量积 六.混合积 七.曲面方程 八.空间曲线方程 九.平面的点法式方程 十…

阿里云的OSS云存储的基本使用

阿里云官网&#xff1a;阿里云-计算&#xff0c;为了无法计算的价值 通过阿里云官网&#xff0c;登录进入用户的界面&#xff0c;在搜索框中输入OSS&#xff0c;然后进入阿里云的对象存储OSS的控制台。&#xff08;未开通的开通即可&#xff09; 创建 Bucket 点击【Bucket 列…

sql在线练习

SQLBolt - 学习 SQL - SQL 简介https://sqlbolt.com/拿走不谢&#xff01;&#xff01;&#xff01; UIUC什么乱七八糟的啊

[UDS] --- RoutineCommunicationControl 0x31

1 0x31功能描述 client端使用RoutineControl服务执行定义的步骤序列并获取任何相关结果。该服务具有很大的灵活性&#xff0c;典型的用法包括擦除内存&#xff0c;复位或学习自适应数据&#xff0c;运行自检&#xff0c;覆盖正常服务器控制策略以及控制服务器值随时间变化等功…