一键认证

一键认证

能力简述

此模块主要分为两块功能:

(1)一键认证:通过运营商网关认证能力,用户无需输入手机号码和短信验证码,即可使用手机号一键认证成功。

(2)本机号码认证:校验用户输入的手机号码是否为当前设备使用,用于替代短信验证码。

接入前准备

(1)请联系QQ:3007288195 开通权限。

(2)调用接口前请先完成个验SDK的接入与初始化。

整体流程

注意

"蓝色流程”由合作方实现对接。

“绿色流程”由个推实现,合作方可进行了解。

成功对接效果图:

接入方可以根据自己产品需要接入自己产品的Logo,如果不接入自己产品的Logo,将使用默认的Logo。
接入方添加自己应用的Logo的步骤如下:

  1. EAccountOpenPageResource.bundle 引入到项目
  2. EAccountOpenPageResource.bundle/logo.png 替换为自已应用的图标

注意事项: Logo图标名称必须命名为logo.png,尺寸大小必须240*240。

接口列表

方法 功能说明
oneTapLoginController 【一键认证】一键认证接口
getVerifyTokenWithCallback 【本机号码校验】获取本机号码校验token
checkPhoneNumber 【本机号码校验】本机号码校验接口
checkELoginEnable 检验当前环境是否可以使用一键认证

接口说明

一键认证接口

/**
 一键认证接口

 @param clickHandler 点击事件回调
 @param callback 通用接口回调
 */
+ (void)oneTapLogin:(GyClickHandler)clickHandler andCallback:(GyVerifyCallback)callback;

输入参数

参数名称 是否必填 类型 描述
clickHandler GyClickHandler 自定义事件点击回调
callBack GyVerifyCallback 一键登陆结果回调

调用示例

[GeYanSdk oneTapLogin:^(NSInteger senderTag) {
            NSLog(@"----senderTag----:%ld", senderTag);
            if (senderTag == 21009) { //点击自定义协议
                [GeYanSdk closeAuthVC];
            }
        }
          andCallback:^(NSDictionary *verifyDictionary) {
              NSObject *msg = verifyDictionary[@"msg"];
              if ([msg isKindOfClass:[NSString class]]) {
                  [[CommonToastHUD sharedInstance] showTips:verifyDictionary[@"msg"]];
              } else {
                  [[CommonToastHUD sharedInstance] showTips:@"登陆成功"];
              }
              NSLog(@"\nCallback for user :%@", verifyDictionary);
          }];

返回示例

一键认证会通过 GyVerifyCallback 返回结果.

GyVerifyCallback:

typedef void (^GyVerifyCallback)(NSDictionary *verifyDictionary);

verifyDictionary返回示例:

{
    code=30000,             
    msg='{"verifyType":0,"data":{"token":"je3o9NNU0w6kpyDEBpIdC4","expiredTime":1553139758029}}'
}
  • verifyDictionary 详细说明:
属性 类型 属性说明
code int 状态码
msg String 验证成功的时候,包含验证结果信息,验证失败的时候,为状态码描述信息
  • 验证成功的时候 msg说明:

验证成功的时候,GYResponse中msg会是如下的JSON格式字符串.


//一键认证成功
{
    "msg":{
            "verifyType":0,
            "data":{
                "token":"qUiRvTAFLeAb36ubCtpcj",
                "expiredTime":1552887621123
            }
    }
}

一键认证成功返回参数解释:

字段 类型 说明
verifyType int 验证类型,0为一键认证验证,1为云短信验证。
data JSON 验证结果
token String 用户授权凭证信息,可用于从服务端获取完整手机号码。
expiredTime long token有效期

本地资源包安全校验

注意EAccountOpenPageResource.bundle名称及其目录下除logo外的其他文件建议不要修改,否则将不能使用免密登录。

若对自定义界面有需求,请参考Demo提示进行自定义界面开发

对于XR等双卡手机,若电话卡和上网卡不一致,则会导致无法正确获取accessCode

###获取本机号码校验token

/**
 * 获取token
 * @param callback 结果回调
 */
+ (void)getVerifyTokenWithCallback:(GyVerifyCallback)callback;

输入参数

参数名称 是否必填 类型 描述
callBack GyVerifyCallback 结果回调

调用示例

     NSString *pn = _phoneNumberLabel.text;
    [GeYanSdk getVerifyTokenWithCallback:^(NSDictionary *tokenDic) {
        NSLog(@"获取token返回结果:%@", tokenDic[@"token"]);
        if ((BOOL) tokenDic[@"success"] == YES) {

        }
    }];

返回示例

获取手机号码校验token会通过 GyVerifyCallback 返回结果.

GyVerifyCallback:

typedef void (^GyVerifyCallback)(NSDictionary *verifyDictionary);

verifyDictionary返回示例:

{
    success: true/false,
    token: "xxx",
    msg: "xxx"
}
  • verifyDictionary 详细说明:
属性 类型 属性说明
success bool 是否成功
msg String 获取token成功为空,失败则为错误信息
token string 获取到的token,如果失败则为空

###本机号码校验接口

####整体流程

/**
 * 本机号码校验
 * @param pn 手机号码
 * @param token token
 * @param callback 回调
 */
+ (void)checkPhoneNumber:(NSString *)pn withToken:(NSString *)token useCloudVerify:(BOOL)useCloudVerify andCallback:(GyVerifyCallback)callback;

输入参数

参数名称 是否必填 类型 描述
pn string 手机号码
token string 校验token
callBack GyVerifyCallback 结果回调

调用示例

[GeYanSdk checkPhoneNumber:pn withToken:token useCloudVerify:NO andCallback:^(NSDictionary *verifyDictionary) {
    NSLog(@"号码校验返回结果:%@", verifyDictionary);
    [[CommonToastHUD sharedInstance] showTips:verifyDictionary[@"msg"]];
}];

返回示例

获取手机号码校验token会通过 GyVerifyCallback 返回结果.

GyVerifyCallback:

typedef void (^GyVerifyCallback)(NSDictionary *verifyDictionary);

verifyDictionary返回示例:

{
    code: 30000,
    msg: "xxx"
}
  • verifyDictionary 详细说明:
属性 类型 属性说明
code int code码
msg String 接口调用返回信息

###验证当前环境是否适合一键认证

/**
 * 检查当前环境是否可以使用一键认证方法
 * @param callback 结果回调
 */
+ (void)checkELoginEnable:(GyVerifyCallback)callback;

输入参数

参数名称 是否必填 类型 描述
callBack GyVerifyCallback 结果回调

调用示例

[GeYanSdk checkELoginEnable:^(NSDictionary *verifyDictionary) {
    NSLog(@"返回信息:%@", verifyDictionary[@"msg"]);
}];

返回示例

获取手机号码校验token会通过 GyVerifyCallback 返回结果.

GyVerifyCallback:

typedef void (^GyVerifyCallback)(NSDictionary *verifyDictionary);

verifyDictionary返回示例:

{
    msg: true/false
}
  • verifyDictionary 详细说明:
属性 类型 属性说明
msg bool true:可以使用一键认证,false:不适用一键认证

状态码

错误码 含义
30000 登录成功
30001 当前环境不适合免密登录
30002 用户点击了其他登录方式
30003 用户关闭验证界面
30004 其他错误,具体见返回
40047 一键认证取号失败
40053 手机号校验失败

其余情况请参考状态码汇总说明

文档中心搜索