家政预约小程序12用户登录

2024-06-04 20:36

本文主要是介绍家政预约小程序12用户登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1 创建全局变量
  • 2 创建页面
  • 3 搭建页面
  • 4 实现登录逻辑
  • 总结

在小程序中,登录是一个常见的场景。比如我们在小程序预约或者购买时,通常要求用户先登录后购买。如果使用传统方案,登录这个动作其实最终的目的是为了获取用户的openid。而使用低代码方案,打开小程序就已经匿名登录了,并不需要再去通过调用登录接口获取openid。

既然这样,为什么我们还需要进行登录呢?主要是为了两个目的,第一是为了获取用户的昵称和头像,在后续用户评价的时候显的更真实。第二方面是通过登录的动作去获取用户的unionid,为了方便给用户发送公众号消息。本篇就介绍一下如何开发登录功能。

1 创建全局变量

在微搭中如果定义变量的话,会有生命周期的区别。如果定义为页面级别的变量,那只能在当前页面使用,如果定义为全局变量,所有页面都可以共享。

我们就需要定义一个全局变量用户获取用户的身份信息,打开应用的编辑器,在代码区展开全局,点击立即新建
在这里插入图片描述
选择新建微搭数据表查询
在这里插入图片描述
选择我们的用户管理数据源,方法选择查询单条
在这里插入图片描述
查询条件设置为openid等于我们系统变量里的openId
在这里插入图片描述

2 创建页面

点击创建页面的图标,新建一个我的页面
在这里插入图片描述
在这里插入图片描述

3 搭建页面

往页面中添加普通容器组件,里边放置图片、文本、按钮组件。我们想要实现的效果是,如果用户登录则显示用户的头像和昵称,如果未登录则显示默认的头像和用户登录的按钮。
在这里插入图片描述
修改图片的宽和高,设置为72px,圆角设置为90
在这里插入图片描述
在这里插入图片描述
将我们默认的头像上传到素材里
在这里插入图片描述
复制一下头像的链接

在图片的地址绑定里,我们通过短路运算符给头像绑定地址

$w.userInfo.data.tx||"https://lowcode-9g6zlcz504383ac8-1305601167.tcloudbaseapp.com/resources/2024-06/lowcode-1830431" 

短路运算符会检查表达式两边的值,如果我们现在已经登录了,就获取用户信息里的头像,如果未登录我们就获取素材里的图片

接着绑定文本组件的文本内容

$w.userInfo.data.nc||"匿名用户"

逻辑和上边是一样的

接着给按钮绑定条件展示

在这里插入图片描述

4 实现登录逻辑

在点击登录的时候,我们需要弹出界面,让用户选择上传头像和昵称,先拖入弹窗组件
在这里插入图片描述
在内容区域添加一个图片上传组件,并且打开小程序端获取头像配置
在这里插入图片描述
添加一个单行输入组件,打开小程序端获取微信昵称配置
在这里插入图片描述
在代码区创建一个javascript方法
在这里插入图片描述
输入如下代码

export default async function({event, data}) {const wx = await app.utils.getWXContext()const unionid = wx.UNIONIDconst openid = wx.OPENIDconst avatar = $w.uploadImage1.valueconsole.log("avatar",avatar)console.log("unionid",unionid)const nickname = $w.input1.valueconst user = await $w.cloud.callDataSource({dataSourceName: "yhgl_2rtx1m9",methodName: "wedaGetItemV2",params: {// 筛选内容,筛选内容推荐使用编辑器数据筛选器生成filter: {where: {$and: [{gzhunionid: {$eq: unionid, // 获取单条时,推荐传入_id数据标识进行操作},},],},},select: {$master: true, // 常见的配置,返回主表},},});console.log("user",user)console.log("ssss",Object.keys(user).length)if(Object.keys(user).length>0){const updateResult = await $w.cloud.callDataSource({dataSourceName: "yhgl_2rtx1m9",methodName: "wedaUpdateV2",params: {// 更新数据data: {tp: avatar,nc: nickname},// 筛选内容,筛选内容推荐使用编辑器数据筛选器生成filter: {where: {$and: [{_id: {$eq: user._id, // 更新单条时,推荐传入_id数据标识进行操作},},],},},},});}else{console.log("新增头像",avatar)const createResult = await $w.cloud.callDataSource({dataSourceName: "yhgl_2rtx1m9",methodName: "wedaCreateV2",params: {data: {tx: avatar,nc: nickname,openid:openid},},});console.log("createResult",createResult)}await $w.userInfo.trigger()
}

这里的逻辑是先根据unionid去看用户是否关注公众号了,如果关注过我就更新一下用户的头像和昵称信息,如果没有关注过,我就将用户填写的信息写入用户表。

总结

本篇我们实现了用户登录的过程,用户登录是一个常见的场景,后续就可以给用户发送在线的消息,提醒订单的变化。

这篇关于家政预约小程序12用户登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031055

相关文章

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)

《在DataGrip中操作MySQL完整流程步骤(从登录到数据查询)》DataGrip是JetBrains公司出品的一款现代化数据库管理工具,支持多种数据库系统,包括MySQL,:本文主要介绍在D... 目录前言一、登录 mysql 服务器1.1 打开 DataGrip 并添加数据源1.2 配置 MySQL

Springboot中JWT登录校验及其拦截器实现方法

《Springboot中JWT登录校验及其拦截器实现方法》:本文主要介绍Springboot中JWT登录校验及其拦截器实现方法的相关资料,包括引入Maven坐标、获取Token、JWT拦截器的实现... 目录前言一、JWT是什么?二、实现步骤1.引入Maven坐标2.获取Token3.JWT拦截器的实现4.

Mysql 驱动程序的程序小结

《Mysql驱动程序的程序小结》MySQL驱动程序是连接应用程序与MySQL数据库的重要组件,根据不同的编程语言和应用场景,MySQL提供了多种驱动程序,下面就来详细的了解一下驱动程序,感兴趣的可以... 目录一、mysql 驱动程序的概念二、常见的 MySQL 驱动程序1. MySQL Connector

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下