高考考试网
当前位置: 首页 高考资讯

微信的OpenID和UnionID到底的哪些秘密

时间:2023-06-12 作者: 小编 阅读量: 6 栏目名: 高考资讯

开发者可以通过微信官方提供的登录能力方便地获取OpenID。后端通过key获取到value,来维护用户身份。主要主体拥有了用户的UnionID,就可以自己授权用户登陆主体下的其他应用。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。开发者可以直接通过wx.logincode2Session获取到该用户UnionID,无须用户再次授权。

话不多说,直奔主题,当然也不是谈论什么惊天大秘密,只是公开的小秘密。

OpenID: 相当于用户在应用(小程序、公众号、小游戏)里的userid,这个id在本应用里固定不变,但是不同应用的OpenID不一样。比如在抖音小程序的OpenID是1,在头条小程序的OpenID是2。

开发者可以通过微信官方提供的登录能力方便地获取OpenID。官方流程如下图。

  1. 小程序前端通过wx.login()获取一个用户的临时code(有效期五分钟),然后通过wx.request()接口发送到开发者服务器。

wx.login({success (res) {if (res.code) {//发起网络请求wx.request({url: 'http://test.com/onLogin',data: {code: res.code}})} else {console.log('登录失败!'res.errMsg)}}})

  1. 开发者服务器通过前端传过来的code,再加上appid appsecret请求微信服务器,获取用户OpenID和session_key。其中session_key是有有效期的,至于多少开发者不知道。之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。官方建议不要把openid和session_key给小程序前端,而是在后端把他们作为value存到缓存中,把key传给前端。前端在调用接口的时候带上key。后端通过key获取到value,来维护用户身份。

请求地址:GET http://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

  • 为什么每个应用的OpenID不一样,如果每个微信用户在不同的应用中OpenID,岂不是更好维护。

其实还是为了安全,如果OpenID一样,首先我们就可以通过OpenID做一些营销,就比如我们现在收到的垃圾短信,因为我们对外界暴露的手机号只有一个。但是如果我们给每个商家留的手机号不一样,短信只收这个商家的,那我们就少了许多垃圾短信。再有就是,几个微信大号有上亿的粉丝,如果让他们掌握了OpenID,也就是间接地掌握了微信用户的一些信息。微信肯定是不允许这样的。

UnionID:一个主体(公司)下的用户唯一标识。之前讲的抖音和头条的OpenID不一样。既然他们都属于字节跳动,为什么登陆授权了头条,再用抖音的时候还需要登陆授权呢。就是老生常谈的SSO。UnionID就是为了解决这个问题而生。主要主体拥有了用户的UnionID,就可以自己授权用户登陆主体下的其他应用。当然用户在每个主体里的UnionID也是不一样的。

用户可以通过如下方式获取UnionID。

1. 调用接口 wx.getUserInfo,从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。2. 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过 wx.logincode2Session 获取到该用户 UnionID,无须用户再次授权。3. 如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.logincode2Session 获取到该用户 UnionID ,无须用户再次授权。4. 用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过getPaidUnionId接口获取该用户的 UnionID,无需用户授权。注意:本接口仅在用户支付完成后的5分钟内有效,请开发者妥善处理。5. 小程序端调用云函数时,如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号,可在云函数中通过 cloud.getWXContext 获取 UnionID。6. 小程序端调用云函数时,如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用,也可在云函数中通过 cloud.getWXContext 获取 UnionID。

总结 : OpenID的是针对单个应用的,UnionID针对主体的。

    推荐阅读
  • iPhone11官方标配耳机有什么功能 iphone11官方标配有耳机吗

    iPhone11是iPhone公司发布的一款手机,于2019年9月11日发布。iPhone11采用阳极氧化铝和玻璃设计,搭载A13Bionic芯片,超广角相机支持2倍光学变焦。作为iPhone的常规旗舰,iPhone11pro整体实力还是颇为出色的,虽然外观上依旧是较宽的大边框,屏占比有些中规中矩,但得益于iPhoneA13处理器与封闭性IOS系统的加持,其在性能与流畅度方面均为行业顶级水平。

  • 四川哪几个县划给云南(四川与贵州的区划变动)

    按照2020年七普统计的数据,贵州省总人口3800多万。土司向朝廷效忠,定期缴纳钱粮。1722年,69岁的康熙皇帝去世,45岁的雍正皇帝上台。雍正皇帝全部同意了鄂尔泰的请求,将四川省的乌撒府、遵义府的6个州县,全部划入了贵州省管理。目前,遵义已经逐步发展成为了贵州省的第二大城市,仅次于省会贵阳。

  • 洁厕灵怎么用更久(洁厕灵竟然这么危险)

    所以提醒各位,即使您家中的洁厕灵刺激性气味不大,甚至是有香味,也不要多吸,因为那是洁厕灵中加入了很多香精,遮住了盐酸的气味。所以买洁厕灵不能只图效果,还是要认清品牌和成分的。洁厕灵的危险不仅如此。其实我们的皮肤倒不是特别娇贵,如果及时擦干,并用清水冲洗,问题是不大的,稀盐酸易溶于水,不会和皮肤发生剧烈反应,而且盐酸有挥发性,可以蒸发走的。

  • 西安科普教育基地(西安航天基地教育系统)

    课程从宇宙起源讲起,概述了人类实现太空探索、追梦苍穹的过程,介绍了航天器飞行的科学原理,举例说明了中国航天系统工程方法如何应用于孩子们的读书和学习。相约太空中“天宫课堂”第二课于3月23日15时40分在中国空间站开讲,航天基地各学校组织全体学生收看“天宫课堂”第二课,让同学们在学习中了解空间科学知识,感知宇宙的奥秘,体验探索的乐趣。

  • 项羽后人怎么死的(他的后代都落得怎样的下场)

    不过,从《史记》这部史书的记载来看,其中的内容并没有明确的指出:项羽跟虞姬这两人之间存在特别专一的爱情。在浙江省兰溪市游埠镇的东山项村,通过对比1700年的族谱发现,东山项村的项氏族人就是项羽的后代。根据秦朝的制度来看,美人的地位仅次于皇后、夫人,称得上是三品爵位。在项梁没有同意的情况下,项羽是不能结婚的。

  • creeper全英语歌词(creeper接龙梗歌词大全)

    ,下面我们就来聊聊关于creeper全英语歌词?接下来我们就一起去了解一下吧!

  • 孕早期吃什么食物容易保胎(怀孕前3个月绝对不能吃的12种食物)

    孕早期不宜食用,否则有滑胎的危险。药理实验证明,薏苡仁对子宫肌肉有兴奋作用,会促进子宫收缩,因而有诱发流产的可能。经实验证明,马齿苋汁亦对子宫有明显兴奋作用,易造成流产。这些明矾中含的铝通过胎盘,侵入胎儿的大脑,会使其形成大脑障碍,增加痴呆儿的比率,所以怀孕期间不吃为好。

  • 龙虾是不是海鲜 龙虾是不是海鲜类

    海鲜,即海产食物,包括鱼类、虾类、贝类等品类,生活在海里的龙虾有花龙、澳龙、红龙、青龙、波士龙等种类。又名大虾、龙头虾、虾魁、海虾等。最重的能达到5公斤以上,人称龙虾虎。主要分布于热带海域,是名贵海产品。

  • qq的空间视频缓存可以清理吗(如何清除QQ空间缓存)

    手动清理进入手机里面找到文件管理功能,然后找到MOVE这个文件找到之后,在里面查看一下,里面的电影文件,不用犹豫直接全部删除掉就可以了,如果没有的话再继续挨个查找删除吧有些可能是在你看视频软件的文件夹里,看到都可以删,下面我们就来说一说关于qq的空间视频缓存可以清理吗?我们一起去了解并探讨一下这个问题吧!qq的空间视频缓存可以清理吗手动清理。

  • 这才是教师节礼物正确打开的方式(教师节特辑家长们)

    学生和家长在这一天,送出表达自己“心意”的物件对老师表示感谢。去年教师节我收到了一块“牌”,让我非常惊喜与感动。每年教师节,学生亲手制作的礼物总是让人印象深刻。好像不少家长认为,到了教师节就该给老师送礼,不送老师就会对孩子不好,其实这是对教师的污名化。师生的情谊根植在日常的相处时光中,“送礼物”这件事应当是真诚心意的表达,当礼物被赋予了超过它本身重量的期望值时,它便不是最初的那份简单祝福了。