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

微信的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种花草,还可以做到花美人也美。

  • 11月成都旅游景点推荐一下(国庆长假和家人)

    国庆长假来临,和家人、朋友一起出发,到成都漫花庄园尽情游玩,体验这里的美景和快乐。网红打卡馆、VR战车、秋千王国、七彩滑道、水上大闯关、旋转木马......各种各样的游乐设施,让游客尽情欢畅。在高空网红玻璃桥上赏百亩花海,乘“极速滑道”穿梭于花丛之中,在“夏威夷沙滩”上体验海边度假风情,逛萌宝牧场,跟小动物近距离接触。趁着长长的假期,让自己从忙碌的工作中放松下来,在这片漫山花海中,享受属于自己的快乐时光。

  • 王者荣耀可以转别的区吗(这里有具体的解析)

    王者荣耀是可以换区的,但是不能转区玩家在登陆页面的区服信息处可以换区重新创建账号,但是不能携号转区,角色也不能换区,想要换区只能重新创建账号,今天小编就来聊一聊关于王者荣耀可以转别的区吗?换区的方法是在登陆页面,点击区服名字右侧的换区按钮,选择一个全新的区服,来创建新的账号,或是选择服务器登陆其他区服账号。王者荣耀是不能转区的,转区的意思是携带账号的角色信息和财产进行转移,是不能转区的。

  • 苹果手机彩铃怎么设置(苹果手机彩铃如何设置)

    苹果手机彩铃怎么设置?以下内容希望对你有帮助!苹果手机彩铃怎么设置移动营业厅搜索彩铃:点击打开“移动营业厅”,搜索“彩铃”。进入彩铃页面,点击“立即办理”。选择一首需要设置的歌曲。进入详情页面中,点击右上角的更多按钮。

  • 超震撼的中欧专列(开往春天的列车)

    董家镇铁路货运中心,是今年4月开始发运的中欧班列。突发情况总是发生在夜间。中欧班列开通前,卧龙电机使用海运运输。疫情以来,海运的时效与运输费用均产生了较大的变化。相比疫情影响下的海运价格,每个集装箱还能节省2000到5000元的运费成本。截至目前,“齐鲁号”累计开行突破5500列。其中,2019年、2020年、2021年分别开行1054列、1506列、1825列,稳居全国前列。但中欧班列齐鲁号开行后,欧顺航将公司的全部运输业务都

  • 大宗是什么意思(大宗解释)

    以下内容大家不妨参考一二希望能帮到您!数量最大的产品、商品。大宗商品是指可进入流通领域,但非零售环节,具有商品属性并用于工农业生产与消费使用的大批量买卖的物质商品。在金融投资市场,大宗商品指同质化、可交易、被广泛作为工业基础原材料的商品,如原油、有色金属、钢铁、农产品、铁矿石、煤炭等。包括3个类别,即能源商品、基础原材料和农副产品。

  • cost怎么读(cost英文解释)

    cost英文解释cost,成本,读音:美/kɔːst/;英/kɒst/释义:(1)n.费用,代价,成本;损失;诉讼费用(2)v.成本为……;花费;使付出;使花许多钱(非正式);给……估价(3)n.(Cost)(美、英。

  • 漫威已经陪伴了我们十年了(漫威他被冰封70年)

    是这个世界在逼迫他们成为超级英雄,而他们从来都没有任何选择的权利。厄斯金博士的死亡使得血清再也无法量产,史蒂夫成为了世界上唯一一个超级战士,但是一个超级战士不可能左右战局,于是他被安排到参加各种演出,为战争募集资金。那一战他大获全胜,让所有曾经看不起他的人都为他喝彩,这一战后,他正式成为了美国队长。知道多年后响指危机,二人才最终和解,史蒂夫这一次寻回了自己和托尼之间的东西,友谊。

  • 主线搭配浮漂口诀(快来看看)

    芦苇漂有热胀冷缩的功能,早晨、中午、晚间,即使调目是一样的,露出来的钓目却是不一样的。如果是钓小型鱼,比如鲫鱼,我们的铅坠重量最佳为1到2克,如果是体型大一点的鱼,比如鲤鱼,铅坠最佳重量为2到3克。浮漂上浮下顿短促有力,能够上鱼的话,就说明调漂非常准确,如果出现中鱼少的情况,建议从饵料入手。

  • 周末愉快短句发朋友圈(描写周末愉快的发圈句子)

    周末愉快短句发朋友圈花开正好秋风不燥!借一方晴空,拥抱阳光。努力一点点,成功就在不远处,借时光之手暖一束花开,借一方晴空拥抱阳光!周末的上午,抛弃一切烦恼,享受阳光,静待花开!工作忙碌又紧张,临近周末精神爽;睡觉睡到自然醒,放松心情舒压力;愿祝朋友生活乐,天天喜笑又颜开。哲人有言,人其实跟树是一样的,越是向往高处的阳光,它的根就越要伸向地底。