前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序项目实战-小程序登录操作

小程序项目实战-小程序登录操作

作者头像
全栈开发日记
发布2022-05-13 14:39:28
2.4K1
发布2022-05-13 14:39:28
举报
文章被收录于专栏:全栈开发日记

本章介绍开发者如何利用微信用户信息登录小程序,并使用云开发将用户数据保存到云数据库中。

微信开放文档中提供了两种方式给开发者完成小程序登录功能。分别是wx.getUserInfowx.getUserProfile两个接口。

微信官方公告

在上图官方公告中可以了解到微信官方对getUserInfo接口进行了调整,现在该接口无法获取到微信用户的用户信息,只能获取到用户的匿名信息。

同时,微信官方提供了新的接口getUserProfile来替代getUserInfo之前的工作,用以获取微信用户的个人信息(头像、昵称、性别和地区)。

getUserInfo接口无需过多介绍,下面说下如何使用新接口完成用户的登录操作,并将记录保存下来。

这里以我自己写的小程序为例:

1 设置button按钮点击事件

代码语言:javascript
复制
<button 
  style="width:150rpx;padding:45rpx 8rpx;" 
  plain 
  type="primary" 
  bindtap="handleLogin">
   登录
</button>

2 通过该事件获取用户信息

代码语言:javascript
复制
handleLogin(){
  let that=this;

  // 获取微信昵称等信息
  wx.getUserProfile({
    lang:'zh_CN',
    desc:'用于小程序内部登录',    success(ret){
      // 将获取到的用户信息写入data中
      that.setData({
        userInfo:ret.userInfo
      });
  })
}

获取到的用户信息

3 将该用户信息缓存到本地

用户登录后,要将该登录信息缓存到本地,否则下次用户切换页面或者重新进入小程序,可能还得需要再次执行登录操作,造成用户不好的体验。

代码语言:javascript
复制
// 设置缓存
const userInfo=ret.userInfo;
wx.setStorageSync('userInfo', userInfo);

4 使用云开发将用户信息存储起来

代码语言:javascript
复制
const DB=wx.cloud.database().collection("userDate");
DB.add({
  data:{
    nickName:userInfo.nickName,
    city:userInfo.city,
    country:userInfo.country,
    language:userInfo.language
  }
});

使用云开发的好处在于,不需要后端开发,不用在意并发问题,需要好的性能就购买更高的云数据库资源。

5 判断当前用户是否新用户

这里使用了云函数获取当前登录用户的openid,通过该唯一标识判断云数据库中是否已经存在该用户,如果不存在则为新用户,反之是老用户。

代码语言:javascript
复制
// 获取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('该用户是老用户了!');
          }
        }
      })
    }
  });

云数据库中保存的数据记录

云开发和云函数的配置之前好像没有讲解到,后面可以拿出两篇讲解一下如何配置和使用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档