小程序开发:获取用户openid的快捷方法

小程序开发:获取用户openid的快捷方法

利用小程序调用云函数,云函数中使用getWXContent()可以快速获取小程序用户的openid

  • 云函数中 - login()
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = (event, context) => {
  const wxContext = cloud.getWXContext()
  return {
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
  }
}
  • util.js
wx.cloud.init()

/**
 * @method login
 * @return {} promise对象,包含openid,appid
 * @desc 用户登陆
*/
const login = async () => {
  return await wx.cloud.callFunction({
    name: 'login'
  })
}

通过module.exports = { login }将login函数暴露出去后就可以用其他js调用了。

  • index.js

需要注意的是,wx.cloud.callFunction()返回的是一个promise对象,若想获取到openid,还要对返回值的成功回调进行处理。(promise知识参见es6 promise)

var util = require('../../util/util.js')
var app = getApp()

util.login().then((value) => {
      app.globalData.openid = value.result.openid
      this.setData({
        logged: true,
      })
      console.log(app.globalData.openid)
    }
  • 成功获取

小程序开发:获取用户openid的快捷方法