FAQ

前端常见问题解答

滑动验证在IE浏览器出现滑动缺口没有对齐

IE下为dom渲染方式,一般是样式影响,导致宽度不够有换行;box-sizing: border-box 影响,检查有没有全局的样式覆盖,使box-sizing变为border-box。

验证码在H5下出现显示异常

对不同分辨率的手机做了适配,改变了页面缩放比(initial-scale) 保证initial-scale始终为1 。

在custom模式下设置宽度失效

宽度有限制,滑动最小值为(278px),大图为210px 不要超出限制范围 。

按钮宽高是否支持修改

宽度可以修改,可以使用任意标准单位,但是有最小260px的限制。高度不支持修改。

浏览器加载极验验证码速度慢

  1. 客户前端部署没有做提前初始化,行为验证要求初始化在业务页面加载时同时初始化。
  2. 开启了IE浏览器的控制台,会出现页面加载异常慢的情况。

前端验证失败,控制台报错 “drag too much”

多次初始化,导致验证报错;初始化只用做一次就可以;

前端报错 old challenge

challenge 通过部署的SDK从极验的服务器上动态注册获得获得, 且每条的有效时间约为10分钟, 超过10分钟则该challenge将会作废。
old challenge :表示 challenge 重复使用,前面获取 challenge 的步骤被缓存,后面重复使用,需要在register请求后面加一个时间戳。

移动端常见问题解答

iOS设备在使用H5时出现文字点选验证位置错位

文字出现错位是由于iOS点击了软键盘顶起了页面,输入框失去焦点后不能恢复导致页面clientY变化的原因,提供以下方案:

  1. 加长整个页面;

  2. html,body { width: 100%; height: 100%; }

服务端常见问题解答

challenge、validate、seccode 这三个值如何设置?

它们是在配置CaptchaURL的时候申请的,sdk里面直接解析第一个URL拿到这些数据,内部流程都封装在sdk里,这三个参数的解析设置都不用关心。

API1&API2的配置

API1API2 是网站主集成极验服务端SDK后需要提供给客户端的两个API,分别完成验证初始化和二次验证的功能,可以参考服务端SDK中的demo进行开发。

二次验证失败

二次验证的不通过原因可能有:一.请求参数问题,二.客户的 session 问题,三. challenge 重复使用问题; 排查流程如下:

  1. 检查二次验证请求的参数值以及传参形式,传参形式是 key-value 的字典传参。
  2. sdk内部逻辑问题,检查读取session是否正常,代码是否走到向极验发送请求的部分,检查极验响应的返回值。
  3. 重复提交问题,向极验发起的二次验证接口只能生效一次;
  4. challenge不一致,要保证challenge在整个流程的一致性。
  5. 检查 sdk 中 gt 和 key 是否正确,参考 demo 要保证传参的正确性。
  6. 客户可提供challenge给极验助手,查询日志(是否收到二次验证请求,响应结果,异常原因等)

如何本地测试failback模式是否生效?

宕机模式,即 failback 是为了处理极端情况下,网站主服务器连接不上极验云服务器时的一种应急处理模式,保障用户操作不受影响。极验云服务器的可用状态(gt_server_status)在API1中通过session存储,并且通过success字段返回给客户端,客户端根据success字段判定是否走failback的验证判断逻辑,API2中会从session取出gt_server_status,根据该状态,API2确定是在本地还是极验云服务器获取二次验证结果。

模拟宕机模式:API1的返回结果中success字段强制设置为0,session中保存的gt_server_status设置为API2中会判断为宕机模式的值。(如Java SDK中可设置为0)

通过哪个值可以判断验证模块是否加载成功?

可以监听验证码的onReady事件,该事件执行了就代表验证模块就加载成功了,可以调用verify方法显示验证码。

api1构建出来的get请求,服务器始终响应的是403

通过以下几点确认问题:

  1. 检查gt_id是否正常,正常gt_id为32位;
  2. 检查url,并查看url的组成是否正确;
  3. ping一下api.geetest.com是否能够ping通。

网络通讯常见问题解答

如何启用HTTPS?

在initGeetest的时候,增加加一个参数:
https:true

将http方式换成httpclient,是否两次请求都可以用post

不可以,第一次要用get请求,第二次才是post请求。

验证相关说明

「行为验证」具体有哪些前端展现形式?

同一个场景的验证ID和Key,web、iOS、Android是否都能通用?

目前同一个验证ID没有使用场景数量限制,但是推荐一个终端下的一个场景使用一个验证ID,方便后期定位问题与深度定制安全策略。

关于「行为验证」中cookie的相关说明?

  1. 「行为验证」cookies的数据来源与生成方法。

    GeeTestUser:当用户在前端请求极验资源时,极验服务随机下发的标识,同极验下发资源的的请求流水号相关,不涉及用户任何本地信息。

    GeeTestAjaxUser:当用户与极验交互时,极验服务随机下发的标识,同极验的交互流水号相关,不涉及用户任何本地信息。

  2. 「行为验证」cookies的作用。

    GeeTestUser:用作标记用户是否历史请求过极验的资源。

    GeeTestAjaxUser:用作标记用户是否对极验发起过交互请求。

  3. 极验目前在用户端只有这2个cookies,不存在其他cookies。