极限验证之iOS笔记摘录

目录

极限验证官网
极限开发文档

前言

项目需求:
  避免恶意频繁获取短信验证码,需要进行人机验证。

使用步骤

注册极限账号,创建极限应用。


极限应用
服务端配置
客户端配置
验证API2
宕机检测
完整流程
failback流程

代码

在Podfile中添加

pod 'GT3Captcha'
  1. 示例
#import <GT3Captcha/GT3Captcha.h>
<GT3CaptchaManagerDelegate>

/**
 极限验证
 */
@property (nonatomic, strong) GT3CaptchaManager *captchaManager;


    // 开始验证
    [self.captchaManager startGTCaptchaWithAnimated:YES];



#pragma MARK - GT3CaptchaManagerDelegate
/**
 调用startGTCaptchaWithAnimated后(开始验证)会调用
 
 @param manager GT3CaptchaManager
 @param originalRequest API1 originalRequest
 @param replacedHandler 返回修改后的Request
 */
- (void)gtCaptcha:(GT3CaptchaManager *)manager willSendRequestAPI1:(NSURLRequest *)originalRequest withReplacedHandler:(void (^)(NSURLRequest * request))replacedHandler{
    
    NSMutableURLRequest *mRequest = [originalRequest mutableCopy];
    [mRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [mRequest setHTTPMethod:@"POST"];
    mRequest.HTTPBody = [@"参数=参数值&参数2=参数值2" dataUsingEncoding:NSUTF8StringEncoding];
    replacedHandler(mRequest);
}


/**
 极限验证通过时调用

 @param manager GT3CaptchaManager
 @param code code
 @param result result
 @param message message
 */
- (void)gtCaptcha:(GT3CaptchaManager *)manager didReceiveCaptchaCode:(NSString *)code result:(NSDictionary *)result message:(NSString *)message{
}

/**
 验证过程出现错误时调用
 */
- (void)gtCaptcha:(GT3CaptchaManager *)manager errorHandler:(GT3Error *)error {
    // 处理验证中返回的错误
    if (error.code == -999) {       // 请求被意外中断, 一般由用户进行取消操作导致, 可忽略错误
        return;
    }else if (error.code == -10) {  // 预判断时被封禁, 不会再进行图形验证
    }else if (error.code == -20) {  // 尝试过多
    }else if (error.code == -1009 ||error.code == -1005) {  // 网络连接失败
    }else if (error.code == -1001) {  // 请求超时
    }else if (error.code == -1011) {  // 服务器无响应
    }else {                         // 网络问题或解析失败, 更多错误码参考开发文档
    }
}
/**
 用户主动关闭验证后调用
 */
- (void)gtCaptchaUserDidCloseGTView:(GT3CaptchaManager *)manager {
}


/**
 Receive Data From API1
 */
- (NSDictionary *)gtCaptcha:(GT3CaptchaManager *)manager didReceiveDataFromAPI1:(NSDictionary *)dictionary withError:(GT3Error *)error{
    
    if ([[dictionary objectForKey:@"code"] integerValue]== 0) {
        
    }
    return dictionary;
}

/**
 是否使用API2请求
 
 @param manager GT3CaptchaManager
 @return 是否使用API2请求
 */
- (BOOL)shouldUseDefaultSecondaryValidate:(GT3CaptchaManager *)manager{
    
    return NO;
}





#pragma mark 懒加载
/**
 极限验证
 
 @return GT3CaptchaManager
 */
- (GT3CaptchaManager *)captchaManager {
    if (!_captchaManager) {
        /**
         创建 极限验证管理器实例
         
         api_1,api_2,超时时间
         */
        _captchaManager = [[GT3CaptchaManager alloc] initWithAPI1:@"api_1" API2:@"api_2" timeout:10.0];
        // dele
        _captchaManager.delegate = self;
        // 底部背景色
        _captchaManager.maskColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.6];
    }
    return _captchaManager;
}
  1. 待续
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容