阿里云验证码2.0的生产环境没问题,本地验证一直不通过,怎么回事?public Boolean verify(String accessId, String accessSecret, String sceneId, String captchaVerifyParam) {
// ====================== 1. 初始化配置 ======================
Config config = new Config();
// 设置您的AccessKey ID 和 AccessKey Secret。
// getEnvProperty只是个示例方法,需要您自己实现AccessKey ID 和 AccessKey Secret安全的获取方式。
config.accessKeyId = accessId;
config.accessKeySecret = accessSecret;
//设置请求地址
config.endpoint = "captcha.cn-shanghai.aliyuncs.com";
// 设置连接超时为5000毫秒
config.connectTimeout = 5000;
// 设置读超时为5000毫秒
config.readTimeout = 5000;
try {
// ====================== 2. 初始化客户端(实际生产代码中建议复用client) ======================
com.aliyun.captcha20230305.Client client = new com.aliyun.captcha20230305.Client(config);
// 创建APi请求
VerifyIntelligentCaptchaRequest request = new VerifyIntelligentCaptchaRequest();
// 本次验证的场景ID,建议传入,防止前端被篡改场景
request.sceneId = sceneId;
// 前端传来的验证参数 CaptchaVerifyParam
request.captchaVerifyParam = captchaVerifyParam;
// ====================== 3. 发起请求) ======================
VerifyIntelligentCaptchaResponse resp = client.verifyIntelligentCaptcha(request);
log.info("verifyIntelligentCaptcha resp={}", JSON.toJSONString(resp));
// 建议使用您系统中的日志组件,打印返回
// 获取验证码验证结果(请注意判空),将结果返回给前端。出现异常建议认为验证通过,优先保证业务可用,然后尽快排查异常原因。
return resp.body.result.verifyResult;
} catch (TeaException error) {
// 建议使用您系统中的日志组件,打印异常
// 出现异常建议认为验证通过,优先保证业务可用,然后尽快排查异常原因。
// Boolean captchaVerifyResult = true;
log.error("拖动校验服务端失败:{}", error.getMessage());
return false;
} catch (Exception _error) {
// TeaException error = new TeaException(_error.getMessage(), _error);
// 建议使用您系统中的日志组件,打印异常
// 出现异常建议认为验证通过,优先保证业务可用,然后尽快排查异常原因。
// Boolean captchaVerifyResult = true;
log.error("拖动校验服务端失败:{}", _error.getMessage());
return false;
}
}
出于攻防效果考虑,开启F12 devtools并触发敏感调试行为被风控拦截,不会影响正常用户,如果确实开发阶段需要调试可以在控制台开启测试模式。此回答整理自钉群“【客】验证码2.0接入咨询”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。