애플릿 클라우드 개발 로그인 프로세스

1962 단어 애플릿
index.js
onLoad: function () {
    that=this
    getOpenid()
  }
})
// openid 
function getOpenid() {
  wx.cloud.callFunction({
    name: 'login',
    data: {},
    success: res => {
      app.globalData.openid = res.result.openid
      getUserInfo()
    },
    fail: err => {
      console.error('[ ] [login]  ', err)
    }
  })
}

function getUserInfo() {
  db.collection('mall_user').where({
    _openid: app.globalData.openid
  }).get().then(
    res => {
      console.log(res)
      if (res.data.length){
        app.globalData.userInfo = res.data[0].userInfo
      }
     
    }
  )
}

클라우드 함수login/index.js
exports.main = (event, context) => {
  console.log(event)
  console.log(context)
  //   WX Context ( ),  OPENID、APPID、  UNIONID(  UNIONID  )
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

user.js
   onLoad(){
    that=this
     if(app.globalData.userInfo){
        this.setData({
          avatarUrl: app.globalData.userInfo.avatarUrl
        })
     }
  }
// 
onGetUserInfo: function (e) {
    if (!e.detail.userInfo) return// 
    app.globalData.userInfo = e.detail.userInfo
    that.setData({
      avatarUrl: e.detail.userInfo.avatarUrl,
    })
    // 
    db.collection('mall_user').where({
      _openid: app.globalData.openid
    }).get().then(
      res => {
        console.log(res)
        if (res.data.length==0){// 
            db.collection('mall_user').add({
              data: {
                userInfo: e.detail.userInfo
              }
            })
        } else {// 
          db.collection('mall_user').doc(res.data[0]._id).update({
              data: {
                userInfo: e.detail.userInfo
              }
            })
        }
      }
    )
  }

좋은 웹페이지 즐겨찾기