微信小程序可以静默获取用户的openid
, 使用接口为 getWXContext, 点开API可以看到相应代码
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
const {
OPENID,
APPID,
UNIONID,
ENV,
} = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
ENV,
}
}
可以将上边云函数命名为 login
, 然后同步到云服务器上, 上传完成后在云开发界面如下:
本地调试 : 这个需要在本地
login
目录运行下 npm install
云端调试: 配置好参数直接运行即可,需要注意的是,如果有梯子最好将梯子关掉,不然可能会浪费些查问题的时间。
云函数的使用
以上面 login
函数为示例:
app.js
//如果担心openid的安全,就用这个函数
getCloudOpenid: async function () {
return this.openid = this.openid || (await wx.cloud.callFunction({name: 'login'})).result.OPENID
},
//最佳方案。
getOpenid: async function () {
(this.openid = this.openid || wx.getStorageSync('openid')) || wx.setStorageSync('openid', await this.getCloudOpenid())
return this.openid
},
任何page:
onLoad: async function () {
console.log(this.openid = await getApp().getOpenid())
},
//在本page的其他函数里获得openid。
yourFunc: function(){
console.log(this.openid)
}
以上应用代码摘于云函数获取openid 。 需要注意的是云函数返回的 字段名 与 APP用的字段名 大小写 需保持一致。
网友评论