授权
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