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

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

    推荐阅读
  • 迷你世界活动大揭秘(迷你世界开启扶持计划)

    目前,《迷你世界》这款沙盒游戏拥有4亿玩家。此外,除了激励政策以外,迷你世界还特地给玩家们提供了技术层面的支持协助,通过一系列教学和专业技术的指导,新人玩家两周时间就能够制作出开发者地图。相信有"星启计划"当"助燃剂"后,整个迷你世界创作者都会陆续浮现出来,同时也会有更多精彩的作品呈现在观众们面前。

  • 家庭版羊蹄怎么做(家庭版羊蹄做法步骤)

    我们一起去了解并探讨一下这个问题吧!家庭版羊蹄怎么做材料:羊蹄750克、枸杞子15克、桂圆肉10克,当归5克,陈皮3克,白菊花5克。羊蹄处理干净,切块,焯后捞出;枸杞子、桂圆肉、当归、陈皮、白菊花分别洗净。碗中放入羊蹄、枸杞子、桂圆肉、当归、陈皮、料酒、姜片,加适量水,盖上盖,放入沸水锅中,隔水炖2小时,至羊蹄熟烂。打开盖,去掉姜片、陈皮,放入白菊花、盐,煲5分钟就好了。

  • 时间的名言名句有哪些(34名人名言名句时间)

    34名人名言名句时间时间是大公无私的法官——[苏]尤・邦达列夫尤里・邦达列夫尤里·瓦西里耶维奇·邦达列夫:前苏联,俄罗斯著名作家,国卫战争参加者,少尉时间是个常数,但对勤奋者来说,是个变数用“分”来计算时间的人,比用“时。

  • 搞笑微信名字男(微信名字好记搞笑)

    怪蜀黍%奇葩奇葩蹦擦擦,今天小编就来聊一聊关于搞笑微信名字男?接下来我们就一起去研究一下吧!搞笑微信名字男怪蜀黍%奇葩奇葩蹦擦擦裤裆里有妖气巴拉拉能量我要与书同灭胸大遮百丑今儿晚上太阳不错复习者联盟青春期躁动症屁股大坐天下别人家的孩子我是大明湖畔的野孩子孟婆,来一杯优乐美花碎大石不贱不开心走路太妖会摔跤班长带头谈恋爱

  • 如何制作截图软件(教你一行代码制作一个截图工具不用联网不用软件)

    电脑最实用的截图方式,你知道的有多少,大多人知道的都是用QQ、微信等等,但有一个截图工具知道的人不超过1%。你还在用软件这种方式截图吗,这种方式又要联网,又要登录软件。你不觉得麻烦吗。下面教你们一个新的截图方式,什么形状的都可以。在桌面新建一个文本文档,然后把后缀名改为bat格式,文件名你自已想一个,"截图.bat".回车鼠标右击编辑,小白我建议先打开写完代码再改后缀名。怕你打不开怪我。

  • 机械制图识图怎么提高(42个图纸解析1个制图口诀)

    在剖视图中,齿根圆用粗实线绘制。该标志被放置在特征控制框后表示宽容。

  • 2022年高考淮北首场考试需提供哪些材料?

    6月7日2022年高考首场考试时,考生需准备的材料有以下信息。乘坐公共交通工具赴考的考生,要全程佩戴口罩。入场时,所有考生需佩戴口罩,保持安全距离。考试时,考生自行决定是否佩戴口罩。考试结束后,考生应服从监考教师安排,在座位静候,根据防止聚集和错峰离校原则,待接到可以离开考场的指令后,方可佩戴口罩有序离场。家长朋友尽量不要接送考生,确需接送的,做到即送(接)即走,避免造成考点外人员聚集和交通拥堵。

  • 有关非法采矿罪相关司法解释规定主要内容包括什么

    单位和个人进入他人依法设立的国有矿山企业和其他矿山企业矿范围内采矿的,依照前款规定处罚。第四十条超越批准的矿区范围采矿的,责令退回本矿区范围内开采、赔偿损失,没收越界开采的矿产品和违法所得,可以并处罚款;拒不退回本矿区范围内开采,造成矿产资源破坏的,吊销采矿许可证,依照刑法第一百五十六条的规定对直接责任人员追究刑事责任。

  • 权力的游戏最让人震撼的情节(史诗神作权力的游戏人物性格与经典战役大盘点)

    第三阶段则是席恩最为悲惨的阶段。罗柏·史塔克他是临冬城公爵奈德史塔克与妻子凯特琳的长子,在父亲前往君临担当首相时,还只是一个少年模样。当父亲蒙冤入狱时,气血方刚的他立即发兵南下,并与盟友佛雷家族订婚。战斗的双方是效忠于史坦尼斯·拜拉席恩的“叛军”和效忠于铁王座的军队。其他的风暴地诸侯宣布向铁王座效忠,通过与提利尔的结盟兰尼斯特家族完全控制了整个南境和西境,掌握的武装力量远远超过其他任何势力。

  • 网店上应该怎么公示营业执照 网店上应该怎么公示营业执照名字

    我已办理了营业执照,网店上应该怎么亮照呢?《网络交易监督管理办法》第十二条规定:网络交易经营者应当在其网站首页或者从事经营活动的主页面显著位置,持续公示经营者主体信息或者该信息的链接标识。鼓励网络交易经营者链接到国家市场监督管理总局电子营业执照亮照系统,公示其营业执照信息。