家政预约小程序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

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、