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

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

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

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

    推荐阅读
  • 增强自信的方法(怎么增加自信)

    关注自己的优点想出自己的10个优点,并把它们罗列在纸上每当你做一件事情的时候,都把自己的优点数一遍,并在心里默念这些优点这样,对你的自信心是一种很大的提升,在心理学上叫做“自信的蔓延效应”,下面我们就来聊聊关于增强自信的方法?这样,对你的自信心是一种很大的提升,在心理学上叫做“自信的蔓延效应”。进行有效的暗示。不断对自己进行正面强化,避免对自己进行负面强化。“我是最美丽的!”树立自信的外部形象。

  • 渡边杏时隔一年多再次进组拍摄(渡边杏复出)

    12月2日,据日媒报道,渡边杏已经开始拍摄TBS台明年的重点剧目《日本沉没》,这是她时隔一年多以后再次进组拍摄常规电视剧。杏在与东出昌大离婚后拿到孩子的抚养权,虽然没有拿到东出昌大的赔偿金,但是两人当初共同买下的房子现在归杏所有。渡边杏时隔一年开拍新剧离婚后决定独自育儿据悉,她现在非常用心规划自己的行程,只为能够多陪伴孩子。最近也有民众看到杏逛超市买菜,随后去幼儿园接孩子回家的场景。

  • 一般酸碱性的食物有哪些(远离慢性酸中毒)

    慢性酸中毒虽然不会带来明显症状,但是它却会慢慢夺走身体健康,加速机体衰老!65%的碱性食物对应35%的酸性食物,可以让尿液的PH值维持在7至7.5之间。至于奶制品,甚至没有对此的酸碱平衡研究。所以,非常适合用它们来中和体内大量的酸性食物如肉类、淀粉类,帮助食物及时消化和排泄。从营养的角度来看,酸性食物和碱性食物的合理搭配是身体健康的保障。

  • 怎么弄微信分身(如何弄微信分身)

    下面内容希望能帮助到你,我们来一起看看吧!怎么弄微信分身工具/原料:360N6智能手机一部、2个微信账号首先点击手机上的设置标志,进入设置主界面。接着为分身输入新的名称,这里命名为微信1,点击保存按钮。返回到手机的主界面,可以查看到刚才设置的分身微信1.点开微信1,登陆自己的另一个微信号即可,这样就完成了分身设置。

  • 天麻的功效与作用及禁忌(天麻的好处和坏处)

    天麻可以增强心脑血管的血流量,所以还可以预防冠心病,预防血栓的形成,可以改善心律失常等疾病。

  • 科目二驾考技巧(科目二驾考窍门)

    以下内容希望对你有帮助!科目二驾考技巧找准点位很关键:每个人身高体格不尽相同,自然而然点位也就不同。例如直角转弯要看车前盖,当盖线时立即打死方向盘,高个还没看到盖线就要打,矮个则要超过了才能打。要根据自己的身高来灵活调整,多做尝试,找到合适的点位。

  • 6.39寸真全面屏的手机(这款手机从1799降至1248)

    这款手机从1799降至12482018年6月,联想重回智能机市场后,发布了第一款手机:联想Z5,随后联想在2018年年底前完成了从低端市场到高端市场的布局,这个速度在手机行业里是绝无仅有的,毕竟联想此前也做过手机,有了足够的经验,。

  • 带人生百态的句子(带人生百态的句子举例)

    跟着小编一起来看一看吧!带人生百态的句子人生百态,何其无奈,人生百态,知足惜福。书写古今风云,笑谈人生百态。人生百态,虽说人生如戏,然而再好的编剧也编不出命运。人生如饮食,酸甜苦辣就像那人生百态,不亲自尝尝又怎么知道其中滋味呢。黎明曙光,照不尽陌路天涯,妙笔生花,道不了人生百态,抒不完人生悲歌。

  • 女孩子气点的游戏名字大全(掌控非念的游戏名字大全男生有自知之明-可爱点)

    赢得状态是干出来的,而不是等出来的。今天可爱点小编准备了好游戏名字大全男生,快随小编一起看看吧。结木弥耶記憶空白不如不念拥有并非是幸福爷有爷的范深知你是梦笑尽沧桑刺眼的青春孤寡少年矫情可劲造千里故人稀你哪知我的无奈碾压你们一生独爱回頭早無路奇葩一朵眼睛溢出水了酷酷哒!小编安利好游戏名字大全男生有喜欢滴收藏下来吧~

  • 2019凯美瑞质保期是多久 凯美瑞质保几年

    2019凯美瑞质保期是多久2018款凯美瑞的质保期为3年/10万公里,厂家给予了免费检查和免费保养的优惠。对于凯美瑞混合动力汽车,其混合动力电池还享有额外的20万公里和8年保修。2019凯美瑞方向盘按键功能图解介绍2019款凯美瑞双引擎方向盘采用真皮包裹,握感好,支持手动4向调节。2019款凯美瑞双引擎方向盘右侧主要用于控制自适应巡航功能。方向盘左侧的操纵杆用来控制车外的灯光,并配有自动大灯功能。