收藏
回答

如何确定用户身份?

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 需求 客户端 wxb00000000000000000 2.5.1

- 需求的场景描述(希望解决的问题)

每次登陆获取的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"这些,这样就没法管理用户了……


我觉得我应该在哪里一定是理解错了什么……烦请各位前辈指导一下,谢谢!

最后一次编辑于  2019-01-24
回答关注问题邀请回答
收藏

3 个回答

  • 拾忆
    拾忆
    2019-01-24

    同一个用户进入一个小程序的openId是一样的

    2019-01-24
    有用 2
    回复 3
    • 2019-01-25

      额……每次我wx.login之后获得的res.code都不一样啊……难道这不是id?

      2019-01-25
      回复
    • 拾忆
      拾忆
      2019-01-25回复

      code不是openId

      2019-01-25
      1
      回复
    • 2019-01-25回复拾忆

      那也就是说必须要用云函数的……获取上下文来取得么?

      require('wx-server-sdk').getWXContext()

      但是如果这样,岂不是每次登陆都要消耗一次云函数的调用次数?

      2019-01-25
      回复
  • 檀俊滔
    檀俊滔
    2019-03-13

    每个用户的openid是一样的,res.code 和 openid 是不同的东西。

    2019-03-13
    有用
    回复
  • Peter👊
    Peter👊
    2019-01-25

    _openid

    2019-01-25
    有用
    回复
登录 后发表内容