1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信小程序-云开发下的用户注册及用户登录逻辑

微信小程序-云开发下的用户注册及用户登录逻辑

时间:2023-11-07 23:54:30

相关推荐

微信小程序-云开发下的用户注册及用户登录逻辑

文章目录

一、前言二、思路分析三、这样做的好处1、安全性2、便捷性3、健壮性 四、实现代码1、创建集合、配置权限2、实现代码(app.js) 五、一些疑惑六、结语

一、前言

基于微信小程序云开发之下的新用户注册,用户登录的概念其实已经不像传统的网站开发、云开发推出之前的前后端分离开发一样:

1、需要服务端向微信端获取微信用户标识才可以建立自己小程序内的用户体系。

2、需要自定义配置登录态。

相对来说,云开发就显得方便多了,仅需要几十行代码就可以做到新用户注册入库、老用户信息获取(登录)的功能。更加快速的建立小程序内的用户体系。

二、思路分析

实现的思路很简单,搭配数据库的集合(表)访问权限以及插入数据时会自带用户openid字段的特点。

当将用户集合(表)的访问权限设置为仅创建者可读可写,然后再去判断用户是否存在于该用户集合内就可以做到判断该用户是不是新用户,需要执行什么样的操作。

三、这样做的好处

1、安全性

用户信息集合(表)存储的可能是一些用户的隐私信息,例如手机号、实名信息等,将该集合的访问权限设置为仅创建者可读可写就可以最大程度的保护用户的隐私。

2、便捷性

当权限为仅创建者可读可写的时候,去判断集合中是否有此用户信息都不需要传入查询条件。那这种情况之下,就不需要像其他情况下需要先去调用云函数获取用户的openid,再将openid作为查询条件传入进去。

3、健壮性

非仅创建者可读可写的情况下,每次查询肯定都要带查询条件,如果查询条件为** _openid: undefined **的时候,就会发现会查到所有的用户信息。假设出现查询时openid没有拿到或者赋值成了undefined时,就很难受了。

四、实现代码

1、创建集合、配置权限

2、实现代码(app.js)

//app.jslet db = nullApp({onLaunch() {if (!wx.cloud) {console.error('请使用 2.2.3 或以上的基础库以使用云能力')} else {wx.cloud.init({// env 参数说明:// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源// 此处请填入环境 ID, 环境 ID 可打开云控制台查看// 如不填则使用默认环境(第一个创建的环境)env: '云环境id',traceUser: true,})db = wx.cloud.database()this.initData()}this.globalData = {}},/** 初始化数据 */async initData() {const userDataObj = await db.collection('user').get()let userData = nullconsole.log("数据库查询到的用户数据 =====>", userDataObj)// 判断是否存在用户信息if (userDataObj.data.length >= 1) { // 存在(老用户)userData = userDataObj.data[0]} else { // 不存在(新用户)const serverDate = db.serverDate()userData = {avatarUrl: null,nickName: null,createTime: serverDate,updateTime: serverDate,deleteTime: null}const addRes = await db.collection('user').add({data: userData})console.log("数据库新增用户结果 =====>", addRes)const newuserDataObj = await db.collection('user').get()console.log("数据库查询到的新用户数据 =====>", newuserDataObj)userData = newuserDataObj.data[0]}// 将用户数据放入缓存和全局变量中wx.setStorageSync('userData', userData)this.globalData.userData = userData},})

五、一些疑惑

可能有同学会觉得设置权限为仅创建者可读可写,在有些需求场景之下不能满足,例如需要给其他用户展示另一用户的手机号等信息,又或者想在小程序上做个小型的管理页面,审核用户信息的啥的。这时候好像就不能实现了。

其实是可以实现的,别忘了:权限配置对云函数无效。

因此,合理的设计应该是通过云函数来实现读、写需求,这样能最大程度上保护的数据的安全。

六、结语

实际开发中的其他逻辑就不写了,文章只是介绍这种设计思路。需要同学们自己去考虑异常情况处理等问题啦。

有任何疑问可以在评论区留下。我每天都会进行回复,私聊不回。(为了刷积分)

以上均是本人开发过程中的一些经验总结与领悟,如果有什么不正确的地方,希望大佬们评论区斧正。

💥最后!!!不管这篇文章对你有没有用,既然都看到最后了。

👍赞一个!!!

🤩当然,顺带收藏就最好了。

😎欢迎转载,原创不易,转载请注明出处✍。

😊如果你对小程序开发有兴趣或者正在学习小程序开发,可以关注我。每一篇都是原创,每一篇都是干货噢~。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。