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

微信的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针对主体的。

    推荐阅读
  • 人民的名义第二部(人民的名义2什么时候播在哪看)

    在第一部里坏人都得到了应有的惩罚,而观众纷纷期待人民的名义2的播出。之前网络上有网友盛传,人民的财产会在2019年的5月上映,但目前为止,官微还没有做任何的推广,所以在5月上映是不太可能的!据了解,根据档期的问题。人民的名义2人民的财产初步定在2019年的9月19日首播!齐本安到任后,发现京州华福的问题既来自于市场环境的变化,也来自于自身管理问题。

  • 怎样鉴别桑树桑黄(如何用最简单的方法鉴别真假桑树桑黄)

    1桑树桑黄资源稀缺野生桑黄数量有限,而真正的野生桑树桑黄更加稀少,所以购买到桑树桑黄是需要缘分的。2真正认识桑黄的人少因为桑黄稀缺,缺乏商业炒作,导致只有少数人知道桑黄,因此也只有极少数的人认识真正的桑树桑黄。但是他们一般都会冠于其桑树桑黄之名并收费800,1200不等。在桑黄这个行业请坚信一句话,低价是买不到野生桑树桑黄的,貌似在其他行业也同样实用。

  • 锌矿石哪个地区多(自然界中的锌矿石种类繁多)

    自然界中的锌矿石种类繁多,但大多以硫化物的形式存在。含锌矿物主要为闪锌矿,少数为氧化矿物,如菱锌矿、异极矿、水锌矿等。闪锌矿闪锌矿含有67.1%的锌,通常含有高达30%的铁。铁含量的不同直接影响闪锌矿的颜色。闪锌矿是分布最广的锌矿物,几乎总是与方铅矿.此外,还常含有锰、镉、铟、镓等稀有元素。因此,闪锌矿不仅是提取锌最重要的矿物原料,也是提取稀有元素的原料。水锌矿水锌矿是闪锌矿的次生矿物。

  • 家庭版烤鸡烤鱼的做法(BBQ烤鱼的做法)

    做法步骤1、针亮鱼两根,鳞和内脏洗干净,切成段,表面打花刀。BBQ是Barbecue的缩写,也就是“烧烤大会”的意思,这个料不辣,孩子也能吃的。期间可以翻动鱼身,这也是为了更好地入味。烤箱上下火180度烤20分钟小贴士烤鱼期间要把鱼勤翻面,为了让鱼身更加有光泽,翻面的时候可以在鱼身上抹一些油。

  • 机械液压助力(机械液压助力方向盘沉)

    机械液压助力优势·技术成熟可靠,成本低,大小车辆都适用。机械液压助力缺点·需依靠发动机动力,相对增加了能耗。机械液压助力技术原理机械液压助力英文简称为HPS。主要组成部分有液压泵、油管、压力流体控制阀、V型传动皮带、储油罐等等。这种助力方式是将一部分发动机动力输出转化成液压泵压力,对转向系统施加辅助作用力,从而使轮胎转向。

  • 视频app哪个好(什么视频播放软件最好用)

    不好的一点是暴风影音下载的视频是BHD格式,导致其他视频软件不能播放,但像烙印一样刻在我心里,每次都喜欢安装,并且深受前一辈工作者的喜爱。但不知从几年前开始,在线视频资料越来越少,反而广告增加了不少,慢慢地离暴风影音越来越远。总结一下,电脑上安装“PotPlayer”就可以。遇到其他有需求的话,安装暴风影音,优酷、腾讯视频之类的也可以,无非就是多看一点点一点点一点点广告或充值分类割韭菜的会员吧。

  • 白月光与朱砂痣歌词(白月光与朱砂痣歌词大全)

    白月光与朱砂痣歌词?接下来我们就一起去了解一下吧!收录于同名专辑《白月光与朱砂痣》中。

  • 空气能和太阳能有什么不同(太阳能和空气能的区别及优点和缺点)

    辅助系统不同,运行成本有很大区别,以市场上常用的电辅为例,太阳能配合电加热器的综合加热效率200%。当储热系统温度达到40℃时,中央控温系统,自动发出取暖指令,让室内冷暖分散系统处于制热状态,经出风口输出热风。当房间温度达到设定温度值时,停止输出热风,房间的温度低于设定值时,出风口又输出热风,如此自动循环达到取暖的目的。

  • 早餐吃多了会不会长胖 早餐吃多了会不会长胖的原因

    而早餐之后,人们迎来一天繁重的工作,到了中午时候,早餐所摄入的热量基本被消耗,不会囤积热量转化为脂肪。因为高一点的体温更有助于脂肪的燃烧,而体寒常常导致脂肪囤积。

  • word字体之间间距怎么弄(Word字体间距怎么调)

    word字体之间间距怎么弄我们在Word中编辑文字的时候,可能需要对文档中的字体进行其他艺术效果的设置。