了解Oracle Mobile Hub 应用程序的验证选项
Oracle Mobile Hub 允许您使用 OAuth、一次登入或 HTTP 基本验证等技术来验证移动应用程序。
在验证您的 iOS 应用程序之前,您必须在 XCode 项目中导入以下库:
#import "OMCCore/OMCAuthorization.h"
#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCMobileManager.h"
关于使用 OAuth 使用者和 HTTP 基本
Oracle Mobile Hub SDK 提供处理用户验证的方法。
使用以下方法处理使用用户名和口令登录的用户:
- (void) authenticate:(NSString *)userName
password:(NSString *)password
completionBlock: (nullable OMCErrorCompletionBlock) completionBlock;
此方法终止与Oracle Mobile Hub 的连接,并从 iOS keychain 清除用户名和口令:
-(void) logout: (nullable OMCErrorCompletionBlock) completionBlock;
关于将单点登录与第三方标记一起使用
您可以使用第三方标记在 Oracle Mobile Hub 中验证您的 iOS 应用程序。
首先,应用程序需要从第三方标记发布者获取标记。获取标记的方式因发布者而异。
令牌一旦进行了验证,请使用它进行验证。此示例中的代码检查在重新登录之前,标记已存储在Oracle Mobile Hub 中:
-(void) authenticateSSOTokenExchange: (NSString*) token
storeAccessToken:(BOOL) storeToken
completionBlock: (OMCErrorCompletionBlock) completionBlock;
注 :
在Oracle Mobile Hub 中存储第三方标记的默认失效时间为 6 小时。可以通过更改Security_TokenExchangeTimeoutSecs
策略来调整此时间。
即使关闭和重新启动应用程序,也可以对应用程序进行编码以保持用户登录状态。
在 authenticateSSOTokenExchange
方法中,如果 storeAccessToken
设置为 YES
,标记将存储在安全存储中,用户将一直保持登录状态,直到该标记失效为止。
可以使用应用程序启动序列中的 loadSSOTokenExchange()
方法从钥匙链加载标记。(如果无法检索令牌,方法将返回 NO
)。
下面是尝试加载保存的标记的一些代码,如果该代码失败,请重新启动验证过程:
OMCAuthorization* auth;
if ( [auth loadSSOTokenExchange] ){
NSLog(@"## Token already found, login skipped.");
...
}
else{
[auth authenticateSSOTokenExchange:thirdPartyToken
storeAccessToken:YES
completionBlock:^(NSError * _Nullable error) {
if( error ){
//Show error popup
}
else{
// Login success.
...
}
}];
}
当您具有存储在安全存储中的标记时,它将保持与应用程序最初使用的后端关联。因此,如果更新了应用程序以使用其他移动后端(或移动后端版本),则需要清除保存的标记(使用 clearSSOTokenExchange
)并重新验证。