基于微信平台的第三方授权体系:场景和原理

4 评论 9561 浏览 64 收藏 10 分钟

笔者立足微信公众平台的账号体系,对涉及场景和相关原理进行了分析,与大家分享。

第三方授权登录对于目前很多平台都是一个比较常规的操作了,如果有留意过的话,会发现会用到很多不同的场景当中。无论是什么场景,基本上都是围绕着让用户现在使用更方便或者让用户以后使用更方便的角度出发去进行的。

对于产品而言,为了满足这样的一些场景或者解决一些问题,我们就需要有对应的方式去进行设计,而在这些体系当中,目前用的比较广泛的,很多都是会去基于微信平台做一些账号体系的设计,那么,接下来我们一起来以微信平台为例看下背后的一些原理。

一、涉及场景

公司在初期基于成本考量,只做了微信小程序,但后期随着业务的发展壮大,决定做App的版本。

那么就涉及到之前小程序当中的那些用户了,如果他们用户小程序登录App,之前的资料或者记录都不存在了,对于用户来说体验是很不好的,所以需要去想办法在App端从账户角度去做同步。

公司就是专注做小程序,所以以同一个公司主体注册并开发了多个小程序。

业务发展中涉及到需要用户的相关信息能够在多个小程序当中共通,有的人可能就会误以为只要是同一个微信号登录的哪怕不同小程序,都能自动识别是同一个用户,但不好意思,并不是这样,所以,这种情况也要想办法解决。

公司做了微信公众号的相关业务开发(订单号和服务号),然后也做了小程序,公众号用来做内容和部分简单业务,小程序用来做工具,从公众号里面直接引流去小程序的用户。

对他们而言,最好是在公众号里面的个人信息和小程序里面是一致的,但哪怕是同一个微信用户,在公众号和小程序之间跳转时,也并不能识别到是同一个用户,所以,需要有相应的方式去解决。

当然,还有一些其他的场景,这里就不一一列举了,而微信作为一个如此大的厂商,也自然是考虑到了这样的一些问题,所以他们也提供了比较好的办法来解决。

二、微信平台

在具体去聊微信是怎么样帮我们解决这些问题之前,我们需要先了解下微信的相关体系以及概念,比如:微信开放平台、微信公众平台、微信小程序、微信支付商户账户、账号主体等一系列名词,当然这里不去一一讲解,大家可以自行上网查阅;

这里主要想讲一下,对于产品设计而言,比较重要的微信公众平台和微信开放平台,像我们熟悉的服务号、订阅号、小程序甚至企业号,都是属于微信公众平台业务的范畴,那微信开放平台呢?

其实完整的看,它能做的事情非常多,涵盖的业务也很广,但在产品设计中,尤其是前面提到的那些业务场景当中,它是能直接有效的解决那些场景中的账号打通类问题的。

三、相关原理

当我们要开发小程序时,我们需要去微信公众平台上注册一个小程序账号,当我们要做公众号开发时,同样也是去微信公众平台上注册一个账号,具体在微信公众平台上要注册什么类型的账号,根据我们实际的业务以及产品形态进行选择即可。

注册完相应类型的账号后,在开发产品过程中就会用到该账号当中提供的一些开发需要用到的信息。

当然信息很多,但对于产品而言,我们需要重点关注的有一个东西叫做OpenID,这个玩意是个啥呢,对于没有开发经验的产品,可以这么简单的理解,就是用某个微信号登录到相应的微信平台(小程序、公众号)后,微信平台自动为这个用户生成的一个唯一的编码,类似于现实生活中每个人的身份证号。

这个东西确实设计的非常方便,能帮助我们在用微信第三方授权登录时,识别到对应的用户。但正如最开篇提到的一些场景,同一个微信号,如果没有什么特殊设置,产品经理没有在账号体系上巧妙设计,哪怕用户用同一个微信号授权登录了同一家公司的不同产品,如小程序、公众号、App,对于这家公司而言,也没法知道是不是同一个用户的。

所以,微信为了帮助我们解决类似问题,就设计出了微信开放平台,而最核心的就是它们创造了所谓的UnionID机制,那么它大概是怎么实现的呢?

举个例子,当公司开发的既有小程序、又有公众号、还有App、PC官网等等,都接入了微信第三方授权登录的方式,那这个时候按照前面所说的OpenID机制,用户对应这个公司的各个产品生成了各自的OpenID;

很显然,如果涉及到账号信息同步的话,在没有做手机号绑定或者其他操作的情况下,几乎就不太可能实现同步的业务了,对于用户体验是极差的,那这时可以怎么办呢?

可以把公司的所有相关公众号、小程序、App的信息绑定在同一个微信开放平台上,绑定之后,用户用同一个微信号在不同的产品登录时,尽管是各自的OpenID,但对于同一微信号,它是会拥有一个共同的UnionID的;

通过这个共同的UnionID,就可以实现在不同产品当中识别到同一用户的目的,这样其他的资料信息同步业务都是可以基于这点去进行设计了。

下图是之前我们公司的不同类型产品,绑定在微信开放后台的情况:

对于数据库当中,相应的用户信息表结构就大致如下:

图中的OpenID就是在用户登录了对应产品微信那边生成,而UnionID字段则是在绑定了微信开放平台以后,生成并保存在数据库当中的。

知道了以上的这些背景信息和相关原理,相信在产品设计当中,就可以很好的解决实际工作当中的诸多与账号体系有关的问题。

甚至基于上面的原理,还可以思考出同时接入了各种不同第三方授权登录的方式后,账号体系这块应该怎么去设计。

在这里,想说下,很多所谓的产品经理,在工作中都非常浮躁,并不会想办法去思考或者了解下产品设计背后的原因,只是停留在用户使用流程、用户体验、用户使用时的想法或者竞品在产品设计时的想法这种偏表面的东西(没错,哪怕你在试图洞察产品设计背后的想法与决策,这依然只是偏表面)。表象与原理结合,多方面思考同时尽可能深入又深入的去思考甚至实践,你会获得巨大的快感。

 

作者:小风,产品经理;公众号:村上风

本文由 @小风 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Pexels,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 以自己公司为主体,帮客户生成的小程序,客户又不想出现我们的品牌露出,这要怎么解决?

    回复
  2. 风哥,来这里问你一个问题哟。我们商城目前已经有了App,小程序和公众号,那现在能放在微信开放平台上去吗,让他们做个关联,把同一个用户全部榜到一起,这一步开发是要重新开发呢,还是只需要做某一部分啊

    回复
  3. 小风老师顶一个!~

    来自广东 回复
  4. 写的非常好

    回复