[OAuth2.0三方登录系列文章-2]如何设计基于OAuth2.0的授权登录SDK以及竞品分析

系列文章

[OAuth2.0三方登录系列文章-1]OAuth2.0与三方登录的端到端方案
[OAuth2.0三方登录系列文章-2]如何设计基于OAuth2.0的授权登录SDK以及竞品分析
[OAuth2.0三方登录系列文章-3]如何设计一个与微信相同的分享sdk

名词解释

授权登录: 指的是 三方应用提供给其他app, 用作快捷登录的方式, 如facebook 授权登录, 微信授权登录, 微博授权登录.
三方登录: 指的是 接入授权登录的app, 如AE 接入了facebook, google的三方登录.

微信 授权登录

官方说明

官方对接流程

支持登录的方式

仅支持app 安装的方式

SDK 设计的细节

官方序列图

架构图

请添加图片描述

泳道图

在这里插入图片描述

优缺点总结

  1. 通用性: SDK 设计的比较通用, 不仅可以满足授权登录的请求, 还可以处理其他的请求
  2. 对接成本:
  3. 易用性:
    • 对于有后端和无后端的应用均可以低成本的对接都是比较低的;
    • 客户端的逻辑对接: 成本略有些高, 需要将wx的返回的数据, 重新的再次包装,才能给到对应的页面

微博 授权登录

官方说明

对接流程

官方sdk文档+ demo

SDK 设计的细节

支持登录的方式

  1. app 已经安装的场景, 打开app授权(称之为SSO登录)
  2. app 已经安装, 强制打开 webview授权
  3. app 未安装时, webview的方式

SDK 架构图

在这里插入图片描述

版本: 10.10.0

门面模式:

WBAPIFactory

IWBAPI

数据发送

必须持有activity, 对接起来, 尤其是对于一些与activity, 使用起来会增加难度.

当前的activity, 会被回调onActivityResult

主动调用authorizeCallBack, 会解析结果, 给到最初注册的api的callback的回调.

泳道图

与微信一样

优缺点总结

  1. 通用性: SDK 设计的相对比较通用, 但是授权登录与分享消息的设计是隔离的, 即SDK设计的没有那么通用
  2. 对接成本
  3. 易用性:
    • 微博直接给到的是token(而非code), 采用的是方式2: 隐式对接的
    • 客户端的逻辑对接: 成本比较低, token直接能够获取到, 并且提供了token的再次刷新等封装的接口

Facebook 授权登录

官方说明

Facebook 登录
SDK的对接流程
SDK 架构说明

SDK 设计的细节

支持登录的方式

  1. app 已经安装的场景, 打开app授权(称之为SSO登录)
  2. app 已经安装, 强制打开 webview授权
  3. app 未安装时, webview的方式
  4. 还有其他的一些不常见方式

SDK 架构图

版本: 6.5.1

请添加图片描述

泳道图

与微信类似

优缺点总结

优点:

  1. 通用性: SDK 设计的层次清晰, 授权登录与分享消息的设计是隔离的
  2. 对接成本
  3. 易用性:
    • facebook直接给到的是token(而非code), 采用的是方式2: 隐式对接的
    • 客户端的逻辑对接: 成本比较低, token直接能够获取到, 并且提供了token的再次刷新等封装的接口

授权登录总结

授权登录SDK会如何设计

假设我们负责的App是NB App, 要对外提供授权登录的SDK.

SDK 端到端方案

给到端侧的是code, 非token.

SDK 功能设计

  1. app 已经安装的场景, 打开app授权(称之为SSO登录)(优先级最高)
  2. app 已经安装, 强制打开 webview授权
  3. app 未安装时, webview的方式

SDK 架构设计

结合微信的业务层的方式, 以及Facebook的实现层的方式, 最终架构如下
请添加图片描述

posted @ 2021-08-05 08:08  Panda Pan  阅读(49)  评论(0编辑  收藏  举报