小程序开发:获取用户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)
}
- 成功获取