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

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

    推荐阅读
  • 五行属木缺水怎么取名字(五行属木属水的字取名)

    五行属水的起名常用字9画属水,是指水名,在中国陕西省;也是洛阳的简称,体现女孩的气度,具有落落大方,秀外慧中的特点。

  • 电陶炉烧焦印怎么去掉(电陶炉是什么)

    而且清洁后,要把去污剂的残余物用冷水除去,并用干布擦干,避免水接触电路,损害炉体。另外,要避免使用消毒剂、汽油、酸类或其他腐蚀类清洁剂,不使用带有磨砂粒子的清洁剂、钢丝摩擦等,以免刮花表面,对炉体和锅具造成损害。电陶炉是利用电流热效应将电能转化为热能的一种炉灶设备,其主要结构由发热盘、微晶板、电控系统、温控系统和炉体组成。电陶炉发热盘由发热部份的铁铬发热片和绝热盘组成。

  • 鸿蒙系统输入法在哪里设置(鸿蒙如何快速切换输入法)

    鸿蒙系统怎么切换输入法?鸿蒙手机想要修改输入法,该怎么设置呢?华为mate40使用鸿蒙系统的时候,想知道怎么切换输入法,下面来介绍一下方法:第一步打开手机,然后点击桌面设置第二步进去手机设置之后,然后点击系统和更新

  • 在一起方舱第几集播(在一起方舱在哪里可以看?)

    在一起方舱第几集播国家广电总局重点指导项目,抗疫题材时代报告剧《在一起》之《方舱》单元在一起第14集《方舱》,10月5日(今晚)将在东方卫视、浙江卫视、江苏卫视、广东卫视、湖南卫视、北京卫视、腾讯视频、爱奇艺、优酷六星三网联动播出。

  • 拉锁头掉了怎么按小妙招(拉锁头掉了怎么按方法)

    拉锁头掉了怎么按小妙招?我们一起去了解并探讨一下这个问题吧!将剪下的一段吸管用剪刀将一侧的管壁剪开,使这段吸管可以打开铺成一个平面。将有双面胶的吸管粘在拉链的顶端。装上拉链头,用力向下拉。拉链头重新拉在拉链上。

  • 单证的在职研究生有用吗(读研分享)

    来自北京的小迪给我们分享了她选择单证在职研究生的原因:,我来为大家科普一下关于单证的在职研究生有用吗?来到北京后的第三年,我选择了报读一个单证在职研究生。其实单证在职研究生一直饱受非议,但对于我来说是很有帮助的。目前单证在职研究生可以通过网络班、周末班和集中班三种授课方式学习,是很灵活的,不耽误工作。随着报考在职研究生的人越来越多,今后单证在职研究生也会越来越规范化,含金量会更高。

  • 怎么申请qq号(为什么不能注册QQ号?)

    下面内容希望能帮助到你,我们来一起看看吧!怎么申请qq号点击并打开“手机QQ”,点击“新用户”,在手机栏输入手机号码。选择并点击“下一步”,在弹出的页面选择“同意”,点击“发送短信”。输入后点击“发送”,返回QQ,输入昵称和密码,点击“注册并登录”即可。

  • 徐翔从3万炒到40亿(徐翔出山第一单)

    以下内容希望对你有帮助!徐翔从3万炒到40亿南方财经4月14日电,谱尼测试公告称,向12名特定投资者定增事宜已完成,发行价55.3元/股,共发行2241.867万股,募集资金约12.4亿元。其中,徐翔家族实际控制的两家上市公司宁波中百、大恒科技合计获配金额2.5亿元,拿下谱尼测试2.83%的股权,这一持股比例名列第五。

  • yy小说是什么意思(yy小说的意思)

    yy小说意思是意淫小说YY指不切实际的幻想(妄想),还有虚妄的意思,我来为大家科普一下关于yy小说是什么意思?yy小说是什么意思yy小说意思是意淫小说。YY小说的内容多为幻想的现实中不可能发生的事,借此来释放年轻人压抑的情绪。YY小说的作者多为年轻人,通常首发于网络,在网络小说中占有较高的比例,yy小说是通常用来实现在现实中没法实现的事情,是想法天真、内容庞大、故事情节严重不符合事实逻辑的作品,概称为yy。

  • 利智李连杰什么关系(传闻向华强睡了李连杰的妻子利智)

    虽然利智在1992年退出演艺圈,但是与李连杰结婚后,利智潜规则事件再度被扒了出来。不少网友还是把利智跟三级女星挂上钩。而娱乐圈潜规则,陪睡事件也就跟利智扯上了关系。据悉,当年利智与成龙拍《双龙会》时,曾有过一幕火辣床上戏和沐浴按摩戏份,双方也随即传出绯闻。利智开始在香港走红时,成龙一旦有机会就会主动邀利智来拍自己的影片。更有传闻称向华强睡了李连杰的妻子利智,究竟咋回事?