小程序项目实战-小程序登录操作
全栈开发日记
共 1846字,需浏览 4分钟
· 2021-04-22
本章介绍开发者如何利用微信用户信息登录小程序,并使用云开发将用户数据保存到云数据库中。
微信开放文档中提供了两种方式给开发者完成小程序登录功能。分别是wx.getUserInfo
和wx.getUserProfile
两个接口。
微信官方公告
getUserInfo
接口进行了调整,现在该接口无法获取到微信用户的用户信息,只能获取到用户的匿名信息。同时,微信官方提供了新的接口getUserProfile
来替代getUserInfo
之前的工作,用以获取微信用户的个人信息(头像、昵称、性别和地区)。getUserInfo
接口无需过多介绍,下面说下如何使用新接口完成用户的登录操作,并将记录保存下来。
这里以我自己写的小程序为例:
<button
style="width:150rpx;padding:45rpx 8rpx;"
plain
type="primary"
bindtap="handleLogin">
登录
</button>
handleLogin(){
let that=this;
// 获取微信昵称等信息
wx.getUserProfile({
lang:'zh_CN',
desc:'用于小程序内部登录',success(ret){
// 将获取到的用户信息写入data中
that.setData({
userInfo:ret.userInfo
});
})
}
获取到的用户信息
用户登录后,要将该登录信息缓存到本地,否则下次用户切换页面或者重新进入小程序,可能还得需要再次执行登录操作,造成用户不好的体验。
// 设置缓存
const userInfo=ret.userInfo;
wx.setStorageSync('userInfo', userInfo);
const DB=wx.cloud.database().collection("userDate");
DB.add({
data:{
nickName:userInfo.nickName,
city:userInfo.city,
country:userInfo.country,
language:userInfo.language
}
});
使用云开发的好处在于,不需要后端开发,不用在意并发问题,需要好的性能就购买更高的云数据库资源。
这里使用了云函数获取当前登录用户的openid
,通过该唯一标识判断云数据库中是否已经存在该用户,如果不存在则为新用户,反之是老用户。
// 获取openid
wx.cloud.callFunction({
//云函数名
name:'login',
//回调函数
success(res){
// 将当前登录用户设置在缓存中
wx.setStorageSync('openid', res.result.openid);
const DB=wx.cloud.database().collection("userDate");
// 通过openid查询云数据库中是否有该用户
DB.where({
_openid:res.result.openid
}).get({
success(res){
// 如果查找到的结果长度是0,说明该用户是第一次登录,则需要进行保存
if(res.data.length==0){
console.log('该用户是新用户!');
}else{
console.log('该用户是老用户了!');
}
}
})
}
});
云数据库中保存的数据记录
云开发和云函数的配置之前好像没有讲解到,后面可以拿出两篇讲解一下如何配置和使用。
各位感兴趣的话可以点击下方公众号查看或者搜索微信公众号【全栈开发日记】进行查看。
评论
盘点一个使用超级鹰识别验证码并自动登录的案例
点击上方“Python共享之家”,进行关注回复“资源”即可获赠Python学习资料今日鸡汤江上几人在,天涯孤棹还。大家好,我是皮皮。一、前言前几天在Python钻石交流群【静惜】问了一个Python实现识别验证码并自动登录的问题,提问截图如下:验证码的截图如下所示:二、实现过程这里大家激烈的探讨,【
IT共享之家
0
【每周一课#06】MidJourney应用实战
#AI绘画# #MJ# #文生图#时间:4月24日周三 21:00课程大纲:1、关于AIGC:概念、发展历程、就业前景2、MJ基础认识:如何使用、底层逻辑、MJ与SD优缺点比较3、MJ基础功能介绍:任务指令、后缀参数、图生图、图生文、垫图、局部修改等4、MJ应用场景与变现方向
Python涨薪研究所
0
高并发实战案例 100 讲,已更新24节,即将涨价,抓紧了
大家好,我是路人。本人亲自录制的《Java 高并发 & 微服务 & 性能调优实战案例 100 讲》已发布了 24 个课时,干货满满。59元,一杯咖啡的价格,100个实战案例,即将涨价到 99,需要的小伙伴速度啦,文末附下单方式。已发布 24 个课时1、SpringBoot实
路人甲Java
0
【每周一课#06】MidJourney 应用实战
#AI绘画# #MJ# #文生图#时间:4月24日周三 21:00课程大纲:1、关于AIGC:概念、发展历程、就业前景2、MJ基础认识:如何使用、底层逻辑、MJ与SD优缺点比较3、MJ基础功能介绍:任务指令、后缀参数、图生图、图生文、垫图、局部修改等4、MJ应用场景与变现方向
Python涨薪研究所
0
Java项目实战——打造一款股票区间交易盯盘系统
点击上方“Java进阶学习交流”,进行关注后台回复“Java”即可获赠Java学习资料今日鸡汤身无彩凤双飞翼,心有灵犀一点通。一、简介大家好,我是Snowball。今天给大家分享的内容是基于Java编程,实现股票交易相关功能开发,如果读者对股票或金融衍生物交易不太了解,又比较感兴趣的话可自行查询相关
Java进阶学习交流
0
低空经济新标杆小龙头
公众号改版,及时收到文章推送需要给公众号加星。大家可以点击页面上方蓝色字【京北夜光】,进入公众号首页,点右上角“...”,点下方“设为星标”。坚持复盘总结分享不容易,点右上角点个在看并分享到朋友圈,看完顺手点个点赞和在看,算是个认可,感谢。在看互动:凡是点了点赞和在看且分享本文到朋友圈的读者,进入公
IT局
77
【Vuejs】2023- Vue3 项目前端 CI/CD 体验
作者:PAXTONX1. 环境准备➜ app-cicd node --versionv18.0.0➜ app-cicd npm --version9.6.62. 安装2.1 初始化选项项目初始化选择。➜ &
前端自习课
10
大视频周报|全国酒店电视操作复杂专项治理动员部署电视电话会在京召开
小美播报本 期 看 点广电总局发4K超高清机顶盒技术新标准;总局公示《智能电视操作系统 第8部分:分类分级》等两项行业标准;工信部组织开展今年5G轻量化(RedCap)贯通行动;全国酒店电视操作复杂专项治理动员部署电视电话会在京召开......(今日流媒体vip可免费获取报告PDF版,详情请见文末。
流媒体网
0