性格测评小程序07用户登录

目录

  • 1 创建登录页
  • 2 在首页检查登录状态
  • 3 搭建登录功能
  • 最终效果
  • 总结

小程序注册功能开发好了之后,就需要考虑登录的问题。首先要考虑谁作为首页,如果把登录页作为首页,比较简单,每次访问的时候都需要登录。

如果把功能页作为首页,那就需要判断用户是否登录,未登录的时候需要重定向到登录页。本篇我们讲解一下如何实现用户登录。

1 创建登录页

打开我们的测评小程序,点击创建页面的图标,创建登录页
在这里插入图片描述
在这里插入图片描述

2 在首页检查登录状态

当用户访问首页的时候,要看一下当前用户是否登录。是否登录我们通过检查全局变量,userid是否为空来进行判断。

切换到首页,点击代码区,创建自定义变量
在这里插入图片描述
在这里插入图片描述
为了避免每次打开首页都需要登录,打开持久化配置
在这里插入图片描述
选中页面组件,设置页面显示的时候的事件
在这里插入图片描述
先设置逻辑分支
在这里插入图片描述
表达式设置为判断用户的标识是否为空
在这里插入图片描述

If($w.IsEmpty($w.app.dataset.state.userid), true, false)

为空的时候我们就重定向到登录页面
在这里插入图片描述

3 搭建登录功能

在登录页,添加表单容器,数据源选择用户表
在这里插入图片描述
保留手机号和密码字段
在这里插入图片描述
打开手机号和密码的必填项配置
在这里插入图片描述
选择表单容器,清除表单容器下的事件
在这里插入图片描述
在代码区,点击新建创建一个javascript方法
在这里插入图片描述
输入如下代码

export default async function ({ event, data }) {
    const phone = $w.inputPhone1.value
    const password = $w.input1.value
    const encryptPassword = CryptoJS.SHA256(password).toString(CryptoJS.enc.Hex);
    console.log("encryptPassword",encryptPassword)
    const result = await $w.cloud.callDataSource({
        dataSourceName: "Users",
        methodName: "wedaGetRecordsV2",
        params: {
            // 筛选内容,当前筛选的含义为:名字为 "juli" 或者 "foo"
            filter: {
                where: {
                    $and: [
                        {
                            sjh: {
                                $eq: phone,
                            },
                        },
                        {
                            password: {
                                $eq: encryptPassword,
                            },
                        },
                    ],
                },
            },
            // 排序
            orderBy: [
                {
                    createdAt: "asc", // 创建时间,正序
                },
                {
                    updateBy: "desc", // 更新时间,倒序
                },
            ],
            // 返回字段选择
            select: {
                $master: true, // 常见的配置,返回主表
            },
            // 返回total字段
            getCount: true,
            // 页面大小
            pageSize: 1,
            // 当前页面
            pageNumber: 1,
        },
    });
    console.log("result",result)
    if (result.total > 0) {
        $w.app.dataset.state.userid = result.records[0]._id
        console.log("id",result._id)
        $w.utils.redirectTo({
            pageId: "index", // 页面 Id
            packageName: "", // 主应用为空或不填,子模块填写 子包目录,查找位置 子包编辑器 --- 页面 --- 子包目录
            params: { key: "value" },
        });
    }else{
        throw '手机号或者密码错误'
    }
}

然后给按钮设置校验成功事件,调用我们的自定义方法
在这里插入图片描述

在这里插入图片描述

最终效果

当我们访问网页链接的时候,先重定向到登录页
在这里插入图片描述
输入手机号和密码的时候,重定向到首页
在这里插入图片描述

总结

本篇我们介绍了登录逻辑的实现,主要是要灵活运用表单容器。表单容器除了向数据源写入数据外,也可以通过灵活的配置实现想要的业务功能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务器被暴力破解的一次小记录

1. 网络架构 家里三台主机,其他一台macmini 启用ollama运行大模型的服务,主机1用来部署一些常用的服务如:mysql, photoprism等,服务器作为网关部署docker, 并且和腾讯云做了内网穿透。服务器部署了1panel用来管理服务并且监控&…

长视频生成、尝试性检索、任务推理 | Big Model Weekly 第56期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 01 COMAL:AConvergent Meta-Algorithm for Aligning LLMs with General Preferences 许多对齐方法,包括基于人类反馈的强化学习(RLHF),依赖于布拉德利-特里&#…

STM32 串口转 虚拟串口---实现USB转串口功能

一,USART与UART 区别 USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器 相较于UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)多了…

将OpenWrt部署在x86服务器上

正文共:1234 字 40 图,预估阅读时间:2 分钟 如果你问ChatGPT有哪些开源的SD-WAN方案,他会这样答复你: 我们看到,OpenWrt也属于比较知名的开源SD-WAN解决方案。当然,在很久之前,我就发…

EtherNetIP转ModbusTCP网关,给风电注入“超级赛亚人”能量

EtherNetIP转ModbusTCP网关,给风电注入“超级赛亚人”能量 在工业通信领域,常常需要将不同网络协议的设备和系统连接起来,以实现更高效的数据交互和系统集成。比如,把EtherNet/IP设备及其网络连接到ModbusTCP网络系统&#xff0c…

【LeetCode】438.找到字符串中所有的字母异位词

目录 题目题目要求什么是“异位词”?如何快速判断两个字符串是否是“异位词”? 解法 滑动窗口 哈希表 (统计个数)核心思路具体步骤 代码 题目 题目链接:LeetCode-438题 给定两个字符串 s 和 p,找到 s 中所…

【设计模式】【结构型模式】装饰者模式(Decorator)

👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 🎵 当你的天空突…

基于Ubuntu+vLLM+NVIDIA T4高效部署DeepSeek大模型实战指南

一、 前言:拥抱vLLM与T4显卡的强强联合 在探索人工智能的道路上,如何高效地部署和运行大型语言模型(LLMs)一直是一个核心挑战。尤其是当我们面对资源有限的环境时,这个问题变得更加突出。原始的DeepSeek-R1-32B模型虽…

Windows环境搭建ES集群

搭建步骤 下载安装包 下载链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.27-windows-x86_64.zip 解压 解压并复制出3份 es-node1配置 config/elasticsearch.yml cluster.name: xixi-es-win node.name: node-1 path.data: D:\\wor…

STM32 I2C通信协议说明

目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况: 异常情况: 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…

Unity学习part2

为bilibili教程【【Unity教程】零基础带你从小白到超神】 https://www.bilibili.com/video/BV1gQ4y1e7SS/?p50&share_sourcecopy_web&vd_source6e7a3cbb802eb986578ad26fae1eeaab的笔记 1、灯光的使用 定向光模拟太阳,是平行光。旋转定向光,光…

Vue 实现主题切换(明暗)

项目地址:https://gitee.com/abcdfdewrw/vue3_xiaohongshu_project 效果展示: 步骤1:定义明暗scss样式 // 浅色模式 html[data-theme"light"]:root {--header-height: 72px;--color-border-bottom: #eef2f9;--color-primary-lab…

rabbitmq五种模式的总结——附java-se实现(详细)

rabbitmq五种模式的总结 完整项目地址:https://github.com/9lucifer/rabbitmq4j-learning 一、简单模式 (一)简单模式概述 RabbitMQ 的简单模式是最基础的消息队列模式,包含以下两个角色: 生产者:负责发…

数据结构 day02

3. 线性表 3.1. 顺序表 3.1.3. 顺序表编程实现 操作:增删改查 .h 文件 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define N 10 typedef struct seqlist {int data[N];int last; //代表数组中最后一个有效元素的下标 } seqlist_t;//1.创建一个空的顺序表 seq…

STM32的HAL库开发---ADC

一、ADC简介 1、ADC,全称:Analog-to-Digital Converter,指模拟/数字转换器 把一些传感器的物理量转换成电压,使用ADC采集电压,然后转换成数字量,经过单片机处理,进行控制和显示。 2、常见的AD…

25/2/16 <算法笔记> DirectPose

DirectPose 是一种直接从图像中预测物体的 6DoF(位姿:6 Degrees of Freedom)姿态 的方法,包括平移和平面旋转。它在目标检测、机器人视觉、增强现实(AR)和自动驾驶等领域中具有广泛应用。相比于传统的位姿估…

企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析

解决方案链接:https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_contentg_1000401616 何为DeepSeek R1 DeepSeek R1模型有诸多技术优势。高效架构设计使其能更高效提取特征,减少冗余计算,提升数据处理速度、…

137,【4】 buuctf web [SCTF2019]Flag Shop

进入靶场 都点击看看 发现点击work会增加¥ 但肯定不能一直点下去 抓包看看 这看起来是一个 JWT(JSON Web Token)字符串。JWT 通常由三部分组成,通过点(.)分隔,分别是头部(Header&…

ThinkPHP8视图赋值与渲染

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 在控制器操作中,使用view函数可以传入视图…

渗透利器:YAKIT 工具-基础实战教程.

YAKIT 工具-基础实战教程. YAKIT(Yak Integrated Toolkit)是一款基于Yak语言开发的集成化网络安全单兵工具,旨在覆盖渗透测试全流程,提供从信息收集、漏洞扫描到攻击实施的自动化支持。其核心目标是通过GUI界面降低Yak语言的使用…