doSecondaryAuth
接口描述
如果身份认证服务器有启用二次认证时会进入当前流程,会执行onAuthProgress(SFAuthType nextAuthType, SFBaseMessage message)
回调,请参考认证回调,根据回调参数,调用本接口完成二次认证。
注意事项
- 此接口调用之前必须已经调用过SFAuthResultListener并设置了非空的认证回调
- 主从场景下,子应用不能调用此方法
方法定义
public void doSecondaryAuth(SFAuthType authType, Map<String, String> authInfo)
参数说明
表1: 参数说明
参数 | 是否必须 | 类型 | 描述 |
---|---|---|---|
authType | 是 | SFAuthType | 认证类型 |
authInfo | 是 | Map | 辅助认证数据对象 |
表2: 枚举SFAuthType说明
枚举值 | 描述 |
---|---|
AUTH_TYPE_SMS | 短信认证 |
AUTH_TYPE_RADIUS | 挑战认证或者Radius认证 |
AUTH_TYPE_TOKEN | 令牌认证 |
AUTH_TYPE_RENEW_PASSWORD | 更新密码认证 |
AUTH_TYPE_RAND | 图形校验码认证 |
AUTH_TYPE_APPLY_BIND_AUTH_DEVICE | 授信终端认证 |
表3 对应的authInfo举例
authInfo的key在SFConstants中,需要在SFConstants中获取。
认证类型 | KEY和Value |
---|---|
短信认证 | authInfo.put(SFConstants.AUTH_KEY_SMS, "验证码"); |
挑战认证或者Radius认证 | authInfo.put(SFConstants.AUTH_KEY_RADIUS_CODE, "code"); |
令牌认证 | authInfo.put(SFConstants.AUTH_KEY_TOKEN, "sdfasftoken"); |
更新密码认证 | authInfo.put(SFConstants.AUTH_KEY_RENEW_OLD_PASSWORD, "旧密码"); authInfo.put(SFConstants.AUTH_KEY_REWNEW_NEW_PASSWORD, "新密码"); |
图形校验码认证 | authInfo.put(SFConstants.AUTH_KEY_USERNAME, "用户名"); authInfo.put(SFConstants.AUTH_KEY_PASSWORD, "密码"); authInfo.put(SFConstants.AUTH_KEY_RANDCODE, "图形验证码"); |
授信终端认证 | authInfo.put(SFConstants.AUTH_KEY_AUTH_DEVICE_REASON, "申请理由"); |
示例代码
// 短信二次认证
Map<String, String> authInfo = new HashMap<String, String>();
authInfo.put(SFConstants.AUTH_KEY_SMS, "验证码");
SFUemSDK.getInstance().doSecondaryAuth(SFAuthType.AUTH_TYPE_SMS, authInfo);