帐号
1.1 协议名
BBASMAccountAdapterProtocol
1.2 功能说明
目前账号登录分:
- 联盟账号:SDK 内部建立联盟账号,打通授权、收货地址、账号登录信息等服务(推荐方式);
- 自有账号:需要通过自有账号建立一套自己的授权体系、收货地址等服务(实现成本高)。
[注] 百度产品线的宿主采用自有账号方式,建议升级 passport 版本到:8.9.2.0.1 。
1.3 接口列表
1.3.1 联盟账号方式
开源联盟宿主(非百度系宿主)仅需要实现这个接口,返回值为 YES 。
1 | /** |
1.3.2 自有账号方式
登录接口
需要注意两点:
- 若宿主的登录页面是一个 View 视图会影响小程序页面周期,在登录前,需调用 [Pyramid.bba_smManager dispatchPageAndAppOnHiddenEvent] ,在登录完成后,调用 [Pyramid.bba_smManager dispatchAppAndPageOnShowEvent] ;
- 若宿主的登录页面是一个 ViewController ,页面消失,需要 loginCompletionBlock(里面 BOOL 值由登录成功决定);侧滑退出登录页面完成后要调用 loginCompletionBlock(NO) ,或者禁止当前登录页面侧滑手势。
1 | /** |
退出登录
1 | /** |
登录成功的用户信息
1 | /** |
宿主账号变化的通知
1 | /** |
检查网页登录是否合法(联盟成员宿主不实现)
1 | /** |
安全防御,百度内部宿主需要实现
1 | /** |
半屏登录、一键登录功能
1 | /// private:百度系产品可用;通过调起半屏登录页面登录后获取用户手机号权限 |
通过手机号半屏登录 (参考 BBASMAccountImplement 中实现 getTelAuthorizeByLoginWithAppId 接口)
一键登录(可选):接入中国移动、中国电信等运营商 SDK 自动获取手机号能力,一键登录参考文档。
一键登录集成步骤:
- 向 Passport 提交物料进行授权申请,获取各个运营商授权 key ;
- 集成运营商 SDK ;(移动 TYRZSDK.framework 、电信 EAccountApiSDK.framework 、联通 OAuth.framework )
- 项目中初始化运营商授权 key ,参考 Demo 中的 BBASMAccountHelper 类;
- BBASMAccountImplement 中实现 getTelAuthorizeByLoginWithAppId 接口,详情请参考参考 Demo 。
[注] 如果不集成运营商 SDK ,则会退化成手机号半屏登录,一键登录有任何问题可以参考文档。
强制绑定手机号(百度系产品)
1
2
3
4/// private:百度系产品可用;可用登录状态如果用户没有手机号,强制绑定手机号
/// @param completion 完成回调,success:是否绑定了手机号,finishBindAction:用户是否调起了绑定手机号界面,并且绑定手机号成功。
/// @description 如果宿主实现了这个方法,那么走宿主的方法,没有默认绑定了手机号
+ (void)forceBindPhone:(void(^)(BOOL success, BOOL finishBindAction))completion;
1.4 私有端能力(运营能力,百度内部宿主必须要接入)
queryQuickLoginInfo 、quickLogin ,具体实现参考 Demo BBASMAccountBridge 的实现。
1.5 调用联盟账号相关方法(自有账号忽略)
在调用的类中,#import “BBASMServiceProtocol.h” 。
退出联盟账号登录
1 | [Pyramid.bba_MNP unionAccountLogOut]; |
获取联盟账号的登录标识
携带 OPENBDUSS 向小程序 SDK 侧服务端请求接口,获取用户相关信息。
1 | [Pyramid.bba_MNP getUnionBduss]; |
1.6 示例
参考:BBASMAccountImplement 。
