×

微信、QQ、新浪微博等第三方登录,你想知道的都在这了(下)

96
朱利安
2017.10.01 17:08* 字数 2481

第三方登录的下篇奉上,姗姗来迟。

上文链接:微信、QQ、新浪微博等第三方登录,你想知道的都在这了(上)


在上文中,我们了解了第三方登录是什么及为什么需要第三方登录,下面讲讲实现的流程。


三、如何建立完善的第三方登录体系

1.申请流程

目前市面上的第三方开放平台屈指可数,基本都是BAT级才会去做这种事情,我们以常见的微信,腾讯QQ和新浪微博三家,简单讲下具体申请流程。

1)微信

微信开放平台:https://open.weixin.qq.com

1. 注册一个开放平台的帐号(用公司共用邮箱,别用自己的,否则离职容易有纠纷)

2. 进入【管理中心】,创建应用提交审核,获取AppID(审核时间3个工作日内)

一个帐号最多可以创建提交10个应用,非常够用啦


3. 获取到AppID后,就可以拿着“AppID”和“微信开放平台的开发者文档”跑去和开发哥哥沟通具体的接入了。

具体的实现方式中的code,access_token等你不了解没有关系,研发同事根据文档实现起来基本没问题。产品最主要还是要关注整体的流程。

另外,值得一提的是,需要提醒研发同事,使用UnionID作为用户的唯一标识而非OpenID。


2)腾讯开放平台

1. 注册腾讯开放平台专用QQ

2. 完善个人信息或公司信息

3. 创建应用,提交审核

注意!!腾讯开放平台的逻辑比较奇葩,android和iOS分别需要提交两次,web端的更是需要在另一个平台创建提交应用


4.1 创建android和iOS应用

首先先创建一个android的应用,再点击右上角的iOS应用,再次提交iOS的信息,这样就能保证iOS和android用的是同一个APP ID。

如果分别在android和iOS应用创建应用,会生成两个APP ID,需要非常注意!



4.2 创建网站应用

创建网站应用不能直接在开放平台中创建,需要需要移步到QQ互联。

网站应用即在PC网站内或移动端网站内使用第三方登录,而开放平台中的网页应用指的是接入到QQ空间,朋友网和3366网站中,提供第三方的软件服务。

两者是不同的,需要特别注意,这里我们需要的是网站应用。

腾讯互联:https://connect.qq.com/index.html

4.2.1 注册腾讯腾讯互联专用QQ

4.2.2 完善个人信息或公司信息

4.2.3 创建网站应用,获取APPID



5. 申请UnionID

如果要实现web端应用,iOS和android应用在提供了第三方登录功能后,能够识别同一个用户,则需要使用到UnionID,目前腾讯的UnionID是没有直接开放,需要单独申请的。

申请的方式查看腾讯给的常见问题解答,下载好申请表格,待应用审核通过了,邮件申请多个已审核通过的应用相互打通,获取统一的UnionID(审核速度很快,半天就下来了)。

6. 将获取到的UnionID,各个端的APP ID,腾讯开放平台的开发者文档QQ互联的开发者文档整理好,提交给研发同事,就能进行开发了。


说个题外话

上面大家也注意到了,和微信开放平台的相比,腾讯开放平台不但繁琐,而且web端和移动端使用居然还是不同的网站,并且一开始没有提供UnionID,需要单独申请。

猜想是腾讯自家的产品内部利益没有处理好,留下了历史的烂摊子,让开发者接入的时候变得繁琐,大公司的有大公司病


3)新浪微博

新浪微博开放平台:http://open.weibo.com/

吐槽下,和微信及腾讯开放平台相比,新浪微博的开发平台仿佛没爹疼没娘爱,迭代做的很差,很多已下线的功能页面都没有相应的调整,误导用户;页面点击各种无响应乱跳转:)

1. 注册一个新浪微博,登录新浪开放平台

2. 提交资料认证完善开发者信息

3. 创建应用,获取App Key(我当时提交1个工作日内就审核过了)


4. 将拿到的App Key及新浪微博开发者文档邮件给到研发同事即可。

应用未审核通过前,就可以先用已拿到的App Key进行开发,不影响开发进度。


2.产品业务流程

上述的各种ID准备完全后,实现上就交给万能的研发哥哥了,但是产品的业务流程还是需要产品狗们亲自梳理下的。

由于自有的帐号体系比较复杂,我们主要来探讨下自有产品体系的三方登录怎么做,这里以原有手机号帐号体系,后续加入第三方登录为例,简单讲下。


1)主线流程-平台帐号已绑定第三方帐号

正常的用户路径中

从登录页面点击进入第三方登录 > 通过第三方授权成功 >判断第三方帐号已绑定了平台的帐号

> 已绑定平台帐号 > 登录成功

但是第三方登录功能上线的时候,帐号都是没有绑定第三方帐号的,于是支线流程1 粗线了


2)支线流程1-未绑定第三方帐号-帐号已注册

第三方帐号未绑定平台的帐号 > 绑定流程 > 已绑定平台帐号 >  登录成功

再考虑到绑定的过程中,用户可能没注册过帐号,于是支线流程2 出来了


3)支线流程2-未绑定第三方帐号-帐号未注册

绑定流程 > 注册流程 >  已绑定平台帐号 > 登录成功

再绑定过程中,再考虑到其他异常状况,例如申请绑定的平台帐号之前已经绑定了其他的第三方帐号,又或者注册的时候,发现手机号已经被注册但有一段时间没有使用了(可能是运营商二次放号)等异常情况,于是又有分支流程3和分支流程4出来


4)支线流程3-未绑定第三方帐号-帐号已注册-第三方帐号已被绑定

绑定流程 > 第三方帐号已绑定平台其他帐号 > 确认解绑 > 重新绑定 >  已绑定平台帐号 > 登录成功


5)支线流程4-未绑定第三方帐号-帐号已注册-帐号疑似二次放号-重新注册

绑定流程 > 疑似二次放号 > 确认未注册 > 重新注册 >  已绑定平台帐号 > 登录成功


其中分支流程3和4非必须,特别是帐号二次放号的检测,有多种检测方式,应根据各家产品自身的特点衡量是否需要做,同时分支流程在不同的产品上也不尽相同,产品需要衡量投入产出,确定颗粒度。


3.注意事项

1) 有多个产品时一定要使用UnionID

如果多个产品是共用一套帐号体系的,一定要使用UnionID

· 微信本身就有UnionID,使用的时候注意和OpenID的区别;

· 腾讯开放平台需要特别申请UnionID,各渠道的应用审核通过后提交邮件申请,很快就能审批下来;

· 新浪微博可以理解为本身用的就是UnionID,不需要特别申请。


2)产品逻辑上如何避免二次放号的问题?

二次放号(手机号历史已注册,后运营商回收后再次注册的问题)是帐号体系一直以来的痛!这个问题的解决办法详见《5千字干货——解决手机号二次使用导致的帐号问题》


3)第三方帐号体系和自建帐号体系,如何抉择?

两者冲突吗?其实并不冲突,但并非所有的产品都需要自建帐号体系,篇幅问题,这里先给自己挖个坑,欢迎关注“朱利安”的简书,我在后续将会解答《自建帐号体系和第三方帐号体系,如何抉择?》


第三方登录的上篇链接:微信、QQ、新浪微博等第三方登录,你想知道的都在这了(上)


BTW,因为祖国母亲的生日,激动到(qi)不(shi)想(shi)码(tai)文(lan)了(duo)。

国庆快乐~


#推荐阅读#

《个性化推荐太遥远,那列表综合排序该怎么做?》

《5千字干货——解决手机号二次使用导致的帐号问题》

产品成长之路
Web note ad 1