小程序用户登录功能

image.png

设置traceUser属性

 wx.cloud.init({
      env: 'mybili-xrruy',
      traceUser:true,
    })
button绑定两个属性

通过云函数可以直接拿到用户的_openId,方便后面的数据库查询添加数据
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
  // 这里获取到的 openId、 appId 和 unionId 是可信的,注意 unionId 仅在满足 unionId 获取条件时返回
  let { OPENID, APPID, UNIONID } = cloud.getWXContext()

  return {
    OPENID,
    APPID,
    UNIONID,
  }
}
以下就是数据库查询,添加用户信息到云数据库
getUserInfo: function(result){
    // console.log(result);
    this.setData({
      isLogin:true
    })
    let openId = "";
    // 调用云函数获取当前的openId
    wx.cloud.callFunction({
      // 云函数名称
      name: 'getopenid',
      // 传给云函数的参数
      success: function (res) {
        openId = res.result.event.userInfo;
        // console.log(res.result.event.userInfo)
      },
      fail: console.error
    })
    // 获取用户信息列表查询,需要拿到用户的openid,数据库中查询是否存在
    USERDB.where({
      _openid: openId
    }).get()
      .then(res => {
        console.log(res)
        if(res.data.length>0){
          // 如果存在
          this.setData({
            userlist: res.data
          })
          this.onLoad()
          return
        }else {
          // 不存在增加数据
          USERDB.add({
            data: result.detail.userInfo,
            success: res => {
              console.log(res)
              this.setData({
                userlist: result.detail.userInfo
              })
              this.onLoad()
            },
            fail: res => {
              console.log(res)
            }
          })
        }
      })
      .catch(res => {
        // 数据库中不存在则添加数据
        console.log(res)
        // 添加用户信息到数据库,之前先校验是否存在
      })
    
  }

备注:小程序刷新页面用 onLoad()方法

你可能感兴趣的:(小程序用户登录功能)