Show 2019年03月04日 08:14 · 阅读 26391
今天想介绍关于OpenID和UnionID这两个ID的理解方式。 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通过UnionID机制来在多公众号之间进行用户帐号互通。只要是同一个微信开放平台帐号下的公众号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。 我是一条华丽的分界线 假设微信号是我们作为微信用户的唯一标识,那么
用户 A 的微信号是 那我们在获取用户微信的时候,微信肯定不会返回具体的微信号给我们,对吧? 为什么不呢?如果返回微信号,那我们就可以根据微信号来加很多很多很多人啦~~~ 想想微信号落入了有心机的人手里,是件多麽可怕的事.... 所以,在用户授权的信息中,是不会涉及到微信号的信息的。 那通过什么来识别用户呢? 请继续往下看 ↓↓↓↓↓↓↓ OpenID申请公众号、小程序的时候,都有一个 APPID,这个是当前账号的标识。另外还有一个APPSERECT,用于解密数据使用。 OpenID就是用户在某一公众平台下的标识。
举个🌰 小明微信号是 T1928738ss,公众号 A 是 A商城,公众号 B 是 B商城。 此时进入 A 商城,则 A 商城获取到的小明的 openID 是 33487793847837734, 此时进入 B 商城,则 B 商城获取到的小明的 openID 是 48423948753248900, 小明在A和B商城之间拥有不同的身份标识,且身份标识是唯一的 也就是说,在一个公众号内,不管进入了多少次,还是一个 openID 同理,小明在进入小程序C、小程序D、公众号F ... 这些系统中,其实后台获取到的OpenID 都是不同的。 那么,如果一个商家,既想在公众号上做商城,也想在小程序端做一个商城,小明进入之后,会产生两个不同的OpenID,岂不是有两个小明用户?这十分奇怪吧... 简单想像一下,你从公众号里进入一个网页版的拼夕夕商城,账号里有10的拼豆,但是进入小程序版的拼夕夕商城,账号里只有1个拼豆,是不是很茫然?是谁模仿了我的帅..... 那么为了防止这样的“怪异”现象发生,我们要解决的问题是:要如何确定小明这个人在进入“同一个”商城中,是“同一个”用户呢? 请继续往下看 ↓↓↓↓↓↓↓ UnionID先引出一个开放平台的概念
结合UnionID 的解释
开放平台的功能有很多,不过我们今天的目标就是要把公众号和小程序连接在同一个开放平台下。 在申请开放平台的时候,也得到这个开放平台的 APPID 和 APPSERECT。
把公众号和小程序连接在同一个开放平台下之后,无论小明从小程序进入,还是从公众号进入,在后台获取信息中就会得到的openID和UnionID,OpenID是不同的,UnionID 是相同的,通过UnionID就可以明确知道是小明这一个人。 总结
你的点赞和关注,是对我们最大的鼓励! 喜欢就关注我们吧!
访问 www.talkmoney.cn 了解更多 荷花微笑 于 2022-02-25 15:17:42 发布 4848 收藏 11前言:开发小程序和微信公众号之前,一定要充分理解openID及unionID的区别,唯一标识很重要,免得后期填坑 一、公众号openID和小程序openID说明:为了识别用户,每个用户针对每个公众号或小程序等应用会产生一个安全的OpenID
同一个微信用户在小程序和公众号上的openid是不同的 二、UnionID 机制说明微信的unionid机制说明: 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。 简而言之,unionid是用来说明多个应用下用户身份一致性的问题。相比较而言,由于在同一个应用下每个用户的openid是唯一的,因此openid也是也可以用来标记用户身份,但是仅限于在同一个应用中。对于不同的应用,每个用户的openid是不一样的,要想在不同应用间识别用户的唯一性只可以用unionid。 三、举例说明微信开放平台帐号下小张有一个公众号A和小程序B, 用户小王访问公众号A生成openidA,openidA在公众号A应用中是唯一的, 小王同时访问小程序B,生成openidB,openidB在小程序B中是唯一的 如果我们现在要确定公众号A的用户小王与小程序B的用户小王是否为同一个用户小王,我们需要 用户的unionid来解决这个问题,即unionid是用来确定不同应用下用户的唯一性。 参看文档:UnionID 机制说明 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html UnionID是什么意思?UnionID 是微信号与开放平台APPID 加密后得到的用户唯一标识,前提是各个公众平台需要先绑定到同一个开放平台,才能从各平台中获取到同一个UnionID。
微信UnionID是什么?UnionId 是一个用户对于同主体微信小程序/公众号/APP的标识,开发者需要在微信开放平台下绑定相同账号的主体。 开发者可通过UnionId,实现多个小程序、公众号、甚至APP 之间的数据互通。 正常情况下,微信生态中,UnionId 是用户身份的唯一标识,(如果业务涉及不同主体,不一定)。
微信小程序 OpenId 有什么用?为什么需要openid
在微信小程序的开发过程中,往往需要将用户信息录入自己的数据库中,就得有一个唯一标记区分用户,这个标记就是openid。 当一个用户使用了某个微信小程序,微信后台会产生一个openid,并且是唯一的,所以可以通过这个来区分用户。
怎么获取微信小程序的UnionID?小程序获取unionID
1、如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。 开发者可以直接通过wx.login + code2Session 获取到该用户UnionID,无须用户再次授权。 2、如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。
|