场景简介
增强认证是在二次认证基础上,进一步提升认证体验。在主认证完成之后,如果存在二次认证,会优先进行二次认证,之后会进行增强认证。
前置步骤
流程图
集成步骤
1、实现主认证
参考典型场景用户名密码认证
2、实现增强认证
开启增强认证,需要首先在服务端进行配置,集成方式与二次认证相同,可以把增强认证看做一种特殊的二次认证。 增强认证与二次认证的区别在于,增强认证是满足相应的触发条件之后执行的,因此在回调增强认证的情况时,会在Message中带上相应的触发条件。我们可以通过这个触发条件来判断是增强认证还是二次认证。
/**
* 主认证成功,但需要辅助认证(下一步认证)
*
* @param nextAuthType 下一步认证类型
* @param msg 下一步认证信息
*/
- (void)onAuthProcess:(SFAuthType)nextAuthType message:(BaseMessage *)msg {
NSLog(@"BasicSceneViewController onAuthProcess:%ld, msg:%@", (long)nextAuthType, msg.errStr);
[MBProgressHUD hideHUDForView:self.view animated:YES];
/**
* 服务端配置了首次登陆强制修改密码,或者其他二次认证及增强认证时,认证时会回调此方法,
* 此时如果不打算适配二次认证,建议给用户提示,让管理员调整配置
*/
if (msg.enhanceAuthTips != nil && msg.enhanceAuthTips.count != 0) {
// 增强认证类型
[AlertUtil showAlert:[NSString stringWithFormat:@"目前处于增强认证,暂不支持此种认证类型(%ld)", (long)nextAuthType] message:@"目前处于增强认证"];
} else {
// 非增强认证
[AlertUtil showAlert:[NSString stringWithFormat:@"目前不处于增强认证,暂不支持此种认证类型(%ld)", (long)nextAuthType] message:@"管理员请关掉此认证"];
}
}
msg.enhanceAuthTips里面存放了相关的触发条件,可以用于给用户提示。
3、注意事项
增强认证不触发的场景: 1.未满足控制台触发条件 2.二次认证与增强认证相同。如二次认证为totp认证,增强认证也为totp认证,则增强认证不会触发,只触发一次。
4、认证成功
主认证成功后,如果管理员未配置二次认证,就会执行onAuthSuccess回调,至此整个认证流程就结束了,认证成功后,应用就可以正常的访问aTrust管理员配置的内网服务器资源, 执行业务代码
示例代码如下:
/**
* 认证成功的回调
* @param msg 认证成功的信息
*/
- (void)onAuthSuccess:(BaseMessage *)msg {
//认证成功的业务
}
5、认证失败
如果有认证失败的情况,会执行onAuthFailed回调, 在该回调中提示用户,重新开始认证
示例代码如下:
/**
* 认证失败的回调
*
* @param msg 错误信息
*/
- (void)onAuthFailed:(BaseMessage *)msg {
// 重新开始认证或者其他逻辑
}