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

目录

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

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

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

1 创建登录页

打开我们的测评小程序,点击创建页面的图标,创建登录页

2 在首页检查登录状态

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

切换到首页,点击代码区,创建自定义变量

为了避免每次打开首页都需要登录,打开持久化配置

选中页面组件,设置页面显示的时候的事件

先设置逻辑分支

表达式设置为判断用户的标识是否为空

bash 复制代码
If($w.IsEmpty($w.app.dataset.state.userid), true, false)

为空的时候我们就重定向到登录页面

3 搭建登录功能

在登录页,添加表单容器,数据源选择用户表

保留手机号和密码字段

打开手机号和密码的必填项配置

选择表单容器,清除表单容器下的事件

在代码区,点击新建创建一个javascript方法

输入如下代码

bash 复制代码
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 '手机号或者密码错误'
    }
}

然后给按钮设置校验成功事件,调用我们的自定义方法

最终效果

当我们访问网页链接的时候,先重定向到登录页

输入手机号和密码的时候,重定向到首页

总结

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

相关推荐
晴虹1 小时前
lecen:一个更好的开源可视化系统搭建项目--组件和功能按钮的权限控制--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一
前端·后端·低代码
AiFlutter4 小时前
四、动画图表(03):饼图
flutter·低代码·低代码平台·aiflutter·aiflutter低代码
踩着两条虫5 小时前
VTJ.PRO「AI + 低代码」应用开发平台的后端模块系统
前端·人工智能·低代码
开发加微信:hedian1165 小时前
推客与分销场景下的系统架构实践:如何支撑高并发与复杂业务规则
小程序
星图易码6 小时前
星图云开发者平台功能详解 | IoT物联网平台:工业设备全链路智能管控中枢
分布式·物联网·低代码·低代码平台
游九尘7 小时前
在小程序中实现横竖屏切换的配置方法,实时监听页面宽度
小程序
weixin_lynhgworld7 小时前
[特殊字符]旧物焕新颜,二手变宝藏——小程序系统开发开启绿色生活新篇章[特殊字符]
小程序·生活
说私域7 小时前
小程序电商运营中“开源AI智能名片链动2+1模式S2B2C商城小程序”对培养“老铁”用户的重要性研究
人工智能·小程序·开源
00后程序员张7 小时前
在 iPhone 上进行 iOS 网络抓包的实践经验
android·ios·小程序·https·uni-app·iphone·webview
weixin_lynhgworld7 小时前
[特殊字符]短剧小程序:解锁碎片时间,畅享无限娱乐[特殊字符]
小程序·娱乐