IMSCredentialManager Class Reference

Inherits from NSObject
Declared in IMSCredentialManager.h

Overview

用于管理和刷新用户身份凭证, 该类下的 credentialasyncRefreshCredential: 两个方法是线程安全的

+ initWithAccountProtocol:

初始化 IMSCredentialManager 有且仅有调用一次

+ (BOOL)initWithAccountProtocol:(id<IMSAccountProtocol> _Nonnull)accountProtocol

Parameters

accountProtocol

账号抽象协议

Return Value

成功返回 YES,失败返回 NO

Discussion

初始化 IMSCredentialManager 有且仅有调用一次

通过账号抽象协议来初始化,IMSCredentialManager 会监听账号登录和登出通知 1)在账号登录的时候根据 accountType 和 token 创建用户身份凭证 IMSCredential 2)在账号登出的时候清除用户身份凭证

Declared In

IMSCredentialManager.h

+ sharedManager

单例

+ (instancetype _Nonnull)sharedManager

Discussion

单例

获取该单例前请先调用 initWithAccountProtocol: 来初始化 IMSCredentialManager,否则会抛出异常

Declared In

IMSCredentialManager.h

  credential

同步获取 IoT 用户身份凭证,用户成功登录后会生成该凭证并持久化,用户退出登录后清除

@property (atomic, strong, readonly, nullable) IMSCredential *credential

Return Value

成功返回 IMSCredential 实例,失败返回 nil

Discussion

同步获取 IoT 用户身份凭证,用户成功登录后会生成该凭证并持久化,用户退出登录后清除

Declared In

IMSCredentialManager.h

– asyncRefreshCredential:

异步刷新用户身份凭证

- (void)asyncRefreshCredential:(void ( ^ _Nonnull ) ( NSError *_Nullable error , IMSCredential *_Nullable credential ))completionHandler

Parameters

completionHandler

刷新回调

Discussion

异步刷新用户身份凭证

总是会发起网络请求,有两种场景需要用到该接口: 1)credential 同步接口返回为空,通过该接口来刷新一个凭证(前提是用户账号已经登录) 2)IMSCredential 中的 iotToken 过期时间比较短,比如 24小时,在 iotToken 过期的时候需要调用该接口刷新一个新的 iotToken,刷新失败请参考 IMSCredentialManagerErrorDomain 下的错误码列表 IMSCredentialManagerErrorCode 来处理错误。

Declared In

IMSCredentialManager.h