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

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

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

开发者可以通过微信官方提供的登录能力方便地获取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针对主体的。

    推荐阅读
  • 全球三大茶叶品牌排行榜(盘点世界十大知名茶叶品牌)

    同时,茶还含有抗氧化剂,有助于减轻体重,保护骨骼,增强免疫系统等功效。Tetley被认为是第一个推出绿茶和调味茶的品牌。Tetley的生产和销售遍及40个国家,Tetley生产60多个品牌茶包。英国拥有Tetley茶品牌的最大用户,预计2014年用户数量约为660万。Dilmah目前是世界上拥有最成熟产茶体系的茶叶制造商。在2016年,预估Twinings草药,绿茶和水果茶的消费群体多达约560万人。标准茶排名第二,冰茶排名第三。由于其高品质和可用性,Twinings被誉为世界顶级茶叶品牌之一。

  • 无花果怎么种植?(无花果树养殖方法)

    光照它喜光,要养护在光线很好的地方,让它接受足够的晒太阳的时间若是光照不够充足植株就无法正常生长,容易导致徒长,致使不会开花结果阳光越是充足,长势就会越好,今天小编就来说说关于无花果怎么种植?无花果怎么种植光照它喜光,要养护在光线很好的地方,让它接受足够的晒太阳的时间。浇水养殖期间浇水也是必不可少的,土壤要保持湿润。注意事项养殖期间除了要注意方法外,还要适当修剪。

  • 诡异又搞笑的故事(一个小故事)

    说到离婚,看着容易,却没那么简单,老李适合责任心很强的人,想到曾经恩爱的时光,还有可爱的孩子,话到嘴边,却说不出口。回家后,老李尝试着接受妻子,接受她的关心,她的过往。渐渐地,老李没有了离婚的想法,生活也回到正规,夫妻感情和好如初。

  • 县城加盟什么服装店比较好(县城加盟什么店最好)

    有不少的人们想要投资广州家渝户晓餐饮——面四季,面四季有什么特点?面四季上市以来,得到了许多人们的扶持和帮助,为人们带来了良好的市场。广州家渝户晓餐饮——面四季牛肉面口感齐全美味又营养,而且现做现卖,新鲜美味。

  • 火锅里的第一美食(谁才是火锅里的天菜)

    火锅终有一涮,或涮毛肚,或涮黄喉。以猪黄喉为例,分水发黄喉和鲜黄喉。但无论是干贡菜还是正常贡菜,都不要煮超过1分钟,不然就整个垮掉,软塌塌的口感大打折扣。十年前,川渝火锅一统江湖,秦妈、皇城老妈等四川、重庆火锅涌入武汉,堪称第一代火锅大军,价格便宜,一顿人均几十元,一时风头无两。潮汕白汤和川式红汤正式battle。

  • 自制蛋糕怎么去腥味(教你2招轻松去除蛋糕里难闻的蛋腥味)

    我们一起去了解并探讨一下这个问题吧!自制蛋糕怎么去腥味挤几滴柠檬汁在蛋液里面。柠檬本身就有祛除异味的功效,加几滴柠檬汁进去,可以祛除鸡蛋本身的腥味,也可以帮助蛋糕的蛋清打发起泡更持久。香草有浓烈的香味,可以掩盖鸡蛋本身的腥味。

  • 来世我愿化作一棵树(来生愿做一棵树)

    如果有来生,我不想成为花,因为花经不起风吹雨打,容易受伤!徜若真的有来生,我愿做一棵树,不管生在山岭,峭壁,荒野草地,任凭风霜雪雨,都会岿然不动!不需任何依靠,一个姿势站成永恒,没有悲欢,沒有哀愁!一半在土里安祥,一半在风里飞扬,一半沐浴阳光,为人类造福,绿化城市,呼出氧气,蔽日遮阴!非常深沉,非常骄傲!从不依靠,从不寻找……2020年1月18日~随笔

  • 细则与规范的区别(细则与规范的区别是什么)

    细则与规范的区别?接下来我们就一起去研究一下吧!需要流程参与人行为必须一致化,标准化的规定。细则,是实际工作最为细化的规定。方案,指某个事件,某项工作人为规定出的关于机构组成,人员组成,各自分工,所负责任,工作目的等。办法,指具体针对对某一件事特别出台的一个处理方法,办理做法。

  • 宠物猪的寿命有多长 猪的寿命有多长?

    近年来,人们的生活水平提高了,养宠物的越来越多,种类也越来越全、越来越另类。宠物猪没有难闻的体味,食量不大,很容易喂养。于是乎,宠物猪自然而然也成为人们玩赏的宠物了,那么,宠物猪能长多大?寿命又有多长

  • 张馨予终于找到适合自己的角色了(张馨予凭借幸福触手可及赢了)

    秦清一直以来活得洒脱霸气,然而在那一刻她瞬间变成脆弱的小女孩。值得一提的是,此次张馨予之所以可以做到超常发挥,这和她本身与秦清有相似的人生经历有关。可以说,张馨予这次是本色出演了,戏内秦清的父亲生病住院,戏外她真真切切失去了父亲。父亲生日时,张馨予亲手为他做蛋糕庆生。