首先,在社区里找到很多几乎相同的问题,但是不少有人在下面杠。自己测试过很多遍,找不到是哪出现的问题,才来发帖。
问题描述:
在微信授权登录,通过云函数将授权数据写进数据库,获取openid是用云函数获取的。但是近期发现有几个用户出现不同openid。
appid:wx33d684afbf6bfb1f
openid :
这四个是同一个用户的;
这两个是同一用户的;
这两个是同一用户的
云函数代码如下
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
const _ = db.command;
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const count = await db.collection('user').where({
openid: wxContext.OPENID
}).get();
if (count.data.length == 0) {
const userInfo = event.userInfo;
userInfo.openid = wxContext.OPENID;
const add = await db.collection('user').add({
data: userInfo
});
if (add.errMsg === 'collection.add:ok') {
const config = await db.collection('configset').where({name:'aliyun'}).get();
// console.log(config);
//用户添加成功,初始化该用户的使用次数。
var usageCcount = {
count: (config.data)[0].dayCount,
userId: add._id
}
await db.collection('usage_count').add({
data: usageCcount
});
//为邀请者添加一次使用次数
if (userInfo.parentId != 0) {
const userCountArray = await db.collection('usage_count').where({
userId: userInfo.parentId
// userId: add._id
}).get();
// console.log(s);
await db.collection("usage_count")
.doc(userCountArray.data[0]._id)
.update({
data: {
// 表示指示数据库将字段自增 10
count: _.inc(1)
}
})
.then((res) => {
// console.log(res.data);
});
}
userInfo._id = add._id;
return userInfo;
} else {
throw add.errMsg;
}
} else {
return count.data[0];
}
}