家政預約小程序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去看用戶是否關注公眾號了,如果關注過我就更新一下用戶的頭像和昵稱信息,如果沒有關注過,我就將用戶填寫的信息寫入用戶表。

總結

本篇我們實現了用戶登錄的過程,用戶登錄是一個常見的場景,后續就可以給用戶發送在線的消息,提醒訂單的變化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22353.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22353.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22353.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python學習圣經:從0到1,精通Python使用

尼恩:LLM大模型學習圣經PDF的起源 在40歲老架構師 尼恩的讀者交流群(50)中,經常性的指導小伙伴們改造簡歷。 經過尼恩的改造之后,很多小伙伴拿到了一線互聯網企業如得物、阿里、滴滴、極兔、有贊、希音、百度、網易、美團的面試機會&#x…

【智能體】文心智能體大賽第二季持續進行中,一起在智能體的海洋里發揮你的創意吧

目錄 背景作文小助手AI迅哥問答程序員黃歷助手比賽時間第二期賽題豐厚獎品評選說明獲獎智能體推薦文章 背景 AI應用(智能體),持續火熱,一句話就能創建一個有趣、好玩的應用。 可以說一分鐘內就能創建一個有創意的智能體。 看大多…

Linux網絡-自定義協議、序列化和反序列化、網絡計算服務器的實現和Windows端客戶端

文章目錄 前言一、自定義協議傳結構體對象 序列化和反序列化什么是序列化?反序列化 二、計算器服務端(線程池版本)1.main.cc2.Socket.hpp3.protocol.hpp4.Calculator.hpp5.serverCal.hpp6.threadPool.hpp7.Task.hpp8. log.hpp 客戶端Windows客…

我有點想用JDK17了

大家好呀,我是summo,JDK版本升級的非常快,現在已經到JDK20了。JDK版本雖多,但應用最廣泛的還得是JDK8,正所謂“他發任他發,我用Java8”。 其實我也不太想升級JDK版本,感覺投入高,收…

華為、華三交換機、路由器啟用基于端口的環回檢測功能配置

目的 在進行某些特殊功能測試時,例如初步定位以太網故障時,需要開啟以太網接口環回檢測功能,測試接口功能是否異常。 當以太網接口無故障時,開啟環回檢測功能后接口物理狀態和協議狀態將始終處于Up狀態;如果以太網接口…

Linux環境搭建NextCloud

NextCloud是什么 Nextcloud是一款開源免費的私有云存儲網盤項目,可以讓你快速便捷的搭建一套屬于自己或者團隊的云同步網盤,從而實現跨平臺跨設備文件同步,共享,版本控制,團隊協做等功能。它的客戶端覆蓋windows&#…

使用AdaBoost分類方法實現對Wine數據集分類

目錄 1. 作者介紹2. 什么是AdaBoost?2.1 什么是弱分類器2.2 什么是強分類器2.3 如何自適應增強2.4 如何組合弱分類器成為一個強分類器? 3. 什么是Wine數據集3.1 Wine 數據集3.2 Wine 數據集結構 4. 使用AdaBoost分類方法實現對Wine數據集分類5. 完整代碼…

PLC的編程方式有什么編程:深度探索與實用指南

PLC的編程方式有什么編程:深度探索與實用指南 在現代工業自動化領域,可編程邏輯控制器(PLC)扮演著至關重要的角色。PLC的編程方式多種多樣,每種方式都有其獨特的優點和適用場景。本文將從四個方面、五個方面、六個方面…

k8s 配置資源管理

一、Secret的資源配置 1.1 Secret配置的相關說明 Secret 是用來保存密碼、token、密鑰等敏感數據的 k8s 資源,這類數據雖然也可以存放在 Pod 或者鏡像中,但是放在 Secret 中是為了更方便的控制如何使用數據,并減少暴露的風險。 有四種類型&a…

日志優化開發效率

日志怎么打? 1.在關鍵節點打日志 (1).請求入口 (2).結果響應 2.可能發生錯誤的節點打日志 3.日志不是越多越好,打日志也會消耗性能 RequestMapping("/add")public Boolean publishBlog(String title, String content, HttpServletRequest req…

react快速開始(四)-之Vite 還是 (Create React App) CRA? 用Vite創建項目

文章目錄 react快速開始(四)-之Vite 還是 (Create React App) CRA? 用Vite創建項目背景Vite 和 (Create React App) CRAVite?Vite 是否支持 TypeScript? 用Vite創建react項目參考 react快速開始(四)-之Vite 還是 (Create React App) CRA? 用Vite創建項…

Java面向對象筆記

多態 一種類型的變量可以引用多種實際類型的對象 如 package ooplearn;public class Test {public static void main(String[] args) {Animal[] animals new Animal[2];animals[0] new Dog();animals[1] new Cat();for (Animal animal : animals){animal.eat();}} }class …

Java面試題-集合

Java面試題-集合 1、什么是集合?2、集合和數組的區別是什么?3、集合有哪些特點?4、常用的集合類有哪些?5、List, Set, Map三者的區別?6、說說集合框架底層數據結構?7、線程安全的集合…

MeshFusion Pro : Ultimate Optimization Tool

MeshFusion Pro是Unity的強大優化工具,它使用一種高效的方法來組合對象,以減少繪制調用并提高FPS。 MeshFusion Pro可用于組合靜態對象以及LODGroups。您還可以創建動態組合對象,其中每個單獨的網格都可以在運行時移動,新的組合網格將自動更新。在保持單個網格自由度的同時…

【數據結構與算法 | 二叉樹篇】力扣101, 104, 111

1. 力扣101 : 對稱二叉樹 (1). 題 給你一個二叉樹的根節點 root , 檢查它是否軸對稱。 示例 1: 輸入:root [1,2,2,3,4,4,3] 輸出:true示例 2: 輸入:root [1,2,2,null,3,null,3] 輸出:false…

Java1.8語言+ springboot +mysql + Thymeleaf 全套家政上門服務平臺app小程序源碼

Java1.8語言 springboot mysql Thymeleaf 全套家政上門服務平臺app小程序源碼 家政系統是一套可以提供上門家政、上門維修、上門洗車、上門搬家等服務為一體的家政平臺解決方案。它能夠與微信對接、擁有用戶端小程序,并提供師傅端app,可以幫助創業者在…

樹的算法基礎知識

什么是樹: 樹是n(n>0)個結點的有限集。n0時稱為空樹。在任意一棵非空樹中: 有且僅有一個特定的稱為根的結點當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1、T2、......、Tm&…

ElasticSearch學習筆記之三:Logstash數據分析

第3章 Logstash數據分析 Logstash使用管道方式進行日志的搜集處理和輸出。有點類似*NIX系統的管道命令 xxx | ccc | ddd,xxx執行完了會執行ccc,然后執行ddd。 在logstash中,包括了三個階段: 輸入input --> 處理filter(不是必須…

異或炸彈(easy)(牛客小白月賽95)

題目鏈接: D-異或炸彈(easy)_牛客小白月賽95 (nowcoder.com) 題目: 題目分析: 一看 還以為是二維差分的題呢 到后來才發現是一維差分問題 這里的距離是 曼哈頓距離 dis abs(x - xi) abs(y - yi) 暴力的做法 就是枚舉 n * n 個…

word-海報制作

1、確定海報的尺寸大小 2、創建主題顏色 設計-顏色-自定義顏色-柑橘rgb值改變著色1-著色6的顏色 3、將文字添加至文本框,更改字體顏色、大小和格式 4、添加背景水印:插入-形狀-文本框 5、組合全部元素 圖片素材網址: