- 需求的场景描述(希望解决的问题)
每次登陆获取的openId都不同,getUserInfo得到的信息都是用户可以去修改的,那么如何确认登陆进来的是谁呢?……
比如做一个论坛程序,用户张三、李四、王五、赵六是不同的4个用户,每次张三登陆进来都得到了不同的openId,这样我就不能通过openId识别他是张三,张三的昵称今天是“内酷酷”,明天可能就改成了“阔约基”,这样就不能根据昵称确定他是张三……
那么在小程序里,每次用户登陆,如何判断这个人就是张三,而且不会是李四、王五、赵六这些人假扮的呢?
- 希望提供的能力
希望从数据结构、用户信息的原理方面指导一下。如果有代码段就更加感激了。
- 补充说明
假设我的collection是这样的一个结构:
forumUser = {
_id: '',
UID: 1001 + userList.length + 1,
NickName: '',
AccountLevel: 1
}
AccountLevel用来标识用户的身份,0是游客、1是普通用户、2是版主、3是论坛信息的管理员
如果每次张三进来都得到不同的OpenID,那么一个张三对应的UID就可能会有"asdasdad1qds11"、"lkjsd1qds11"、"qoewiuejkqds11"这些,这样就没法管理用户了……
我觉得我应该在哪里一定是理解错了什么……烦请各位前辈指导一下,谢谢!
同一个用户进入一个小程序的openId是一样的
额……每次我wx.login之后获得的res.code都不一样啊……难道这不是id?
code不是openId
那也就是说必须要用云函数的……获取上下文来取得么?
require(
'wx-server-sdk'
).getWXContext()
但是如果这样,岂不是每次登陆都要消耗一次云函数的调用次数?
每个用户的openid是一样的,res.code 和 openid 是不同的东西。
_openid