开发

授权

1.1 协议名

BBASMAuthorizeAdapterProtocol

1.2 功能说明

授权请求服务:在调用某些 NA 端的能力(获取用户信息、系统定位、相册等)时,需要向 C 端的 server(也可以是宿主的 server )相应的鉴权请求。宿主自有账号,这里依赖于账号方式,如果是联盟账号,不需要实现这个协议;如果是自有账号,需要实现 authorize 的接口。

1.3 接口列表

@optional

百度内部产品的宿主需要强制实现,联盟宿主不需要实现

1
2
3
4
5
6
7
/**
* @brief private: 获取 stoken 参数,百度系宿主必须实现,其它宿主不需要实现
* @param successBlock 成功回调
* @param failureBlock 失败回调
*/
+ (void)getStokenSuccess:(void (^)(NSString *stoken))successBlock
failure:(void (^)(NSError *error))failureBlock;

联盟宿主采用自有账号方式,需要实现以下接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
* @brief 获取swanid请求参数
*
* @param info 小程序appId信息
* @return 请求参数
* @example
* @{
* @"url":[NSString],请求地址,不能为空(ma/user/swanid)
* @"params":[NSDictionary],请求参数,不能为空
* @"error":[NSError],存储请求参数发生错误时的错误信息,若请求参数正确,该值为nil,若请求参数错误,需要存储错误信息,同时请求参数可以为空,不会发起请求
* }
*/
+ (NSDictionary *)smidRequestInfo:(id<BBASMAppIdentifyInfoAdapterProtocol>)info;

/**
* @brief update请求信息
*
* @param info 小程序appId信息
* @param isForce 是否强制拉取数据
* @return 请求参数
* @example
* @{
* @"url":[NSString],请求地址,不能为空(ma/update)
* @"params":[NSDictionary],请求参数,不能为空
* @"error":[NSError],存储请求参数发生错误时的错误信息,若请求参数正确,该值为nil,若请求参数错误,需要存储错误信息,同时请求参数可以为空,不会发起请求
* }
*/
+ (NSDictionary *)updateRequestInfo:(id<BBASMAppIdentifyInfoAdapterProtocol>)info
force:(BOOL)isForce;

/**
* @brief 根据appid 重置授权信息
*
* @param infos 小程序appId信息列表
* @return 请求参数
* @example
* @{
* @"url":[NSString],请求地址,不能为空(ma/reset)
* @"params":[NSDictionary],请求参数,不能为空
* @"error":[NSError],存储请求参数发生错误时的错误信息,若请求参数正确,该值为nil,若请求参数错误,需要存储错误信息,同时请求参数可以为空,不会发起请求
* }
*/
+ (NSDictionary *)resetAuthorizeRequestInfo:(NSArray<id<BBASMAppIdentifyInfoAdapterProtocol>> *)infos;

/**
* @brief 获取open/data请求信息
*
* @param info 小程序appId和scope信息
* @param actionType 为"1"时,用户拒绝点击按钮也将弹授权框--小游戏获取用户信息参数为1,其它调用ationType=nil
* @return 请求参数
* @example
* @{
* @"url":[NSString],请求地址,不能为空(ma/open/data)
* @"params":[NSDictionary],请求参数,不能为空
* @"error":[NSError],存储请求参数发生错误时的错误信息,若请求参数正确,该值为nil,若请求参数错误,需要存储错误信息,同时请求参数可以为空,不会发起请求
* }
*/
+ (NSDictionary *)openDataRequestInfo:(id<BBASMAuthorizeInfoAdapterProtocol>)info
actionType:(NSString *)actionType;

/**
* @brief 获取用户登录换取code、授权且拿数据、只授权请求信息
*
* @param info scope信息
* @param requestType BBASMAuthorizeRequestType
* @param opType BBASMAuthorizeOperatorType
* @param complete 回调请求参数
* @example
* @{
* @"url":[NSString],请求地址,不能为空(ma/login、ma/accredit_data、ma/accredit_v1)
* @"params":[NSDictionary],请求参数,不能为空
* @"error":[NSError],存储请求参数发生错误时的错误信息,若请求参数正确,该值为nil,若请求参数错误,需要存储错误信息,同时请求参数可以为空,不会发起请求
* }
*/
+ (void)modifyScopeReuestInfo:(id<BBASMAuthorizeInfoAdapterProtocol>)info
requestType:(BBASMAuthorizeRequestType)requestType
operatorType:(BBASMAuthorizeOperatorType)opType
complete:(void(^)(NSDictionary *paramDic))complete;

/**
* @brief 客户端时间和服务器请求时间差值
* @return 百度系宿主必须实现,开源宿主可不实现或返回0(默认为0)
*/
+ (NSInteger)updateDelta;

1.4 示例

参考:BBASMAuthorizeImplement