服务端常见问题解答
challenge、validate、seccode 这三个值从哪里来?
在完成拖动滑块或者点击大图等,客户端会向极验服务器请求/ajax.php接口,如果校验成功,接口会返回这三个值。
二次验证失败
二次验证的不通过原因可能有:一.请求参数问题;二.bypass状态问题;三. challenge重复使用问题;
- 排查流程如下:
- 检查二次验证请求,服务端sdk是否正确接收到参数(post请求,Content-Type:application/x-www-form-urlencoded)。
- 在整个验证码交互流程中bypass状态发生了变化,导致sdk本地生成的校验参数无法通过线上服务器的校验。
- 重复提交问题,向极验发起的二次验证请求参数只能使用一次。
- challenge不一致,要保证challenge在整个流程的一致性。
- 客户可提供服务端sdk日志和此次验证流程的唯一流水号challenge给极验助手。
什么是宕机模式?
宕机模式,即 bypass 是为了确保在任何极端状况下都能及时、可控地实现服务切换,作为对客户业务流程保障的最终兜底机制。极验设置一个独立于行为验证现有的通讯流程之外的服务可用性监控接口,在sdk的demo中通过轮询机制获取的bypass状态存入数据库中(demo示例中使用的是redis,可自行设计存储架构)。当客户端向SDK服务器发起请求时,从数据库中取出状态标识字段,根据状态标识字段来决定后续向极验发起请求还是进入宕机模式不与极验发生任何交互。
如何本地测试宕机模式?
- 注意:以下模拟方式原理分为两类,一类是极验云监控接口不可用,网络不通,等同于真实情况极验云遭受攻击或者其他异常导致云端宕机;另一类是极验云监控接口正常,极验云经过自检,发现云端状态异常,而将此异常结果返回。
配置文件中将id改成错误账号 配置文件中将id改成错误账号
geetest_config
文件中将GEETEST_ID
的值改成1234567890
配置文件中将极验云监听接口改成错误链接
geetest_config
文件中将BYPASS_URL
的值改成http://www.google.com
修改服务器hosts,将极验云监听接口域名绑定错误ip
修改服务器hosts配置文件:
127.0.0.1 bypass.geetest.com
极验云监听接口返回fail状态数据
联系极验客服,提供id号,由极验人员操作,可使极验云端接口直接返回fail状态数据
服务端sdk内部向极验发起register.php请求,始终得到响应是403
- 检查geetest_id是否正常,是否为32位。
- 检查url,并查看url的组成是否正确。
ping api.geetest.com
是否能够ping通。