在AJAX|PJAX请求内使用reCAPTCHA验证码
最近做了一个免费SSL签发,在接入验证码的时候选择了reCAPTCHA,然而google的接入文档没有中文,后来经过查找和尝试,找到了方法.
前言
其实一开始就想接入reCAPTCHA的,但是因为文档看不懂而尝试接入极验验证和点触验证,然而接入过程和结果令人恶心,极验验证缺少开发文档,我尝试使用composer来安装其sdk,却发现composer仓库里没有这个包,无奈手动继承,终于照着demo配置好了验证的部分,再去配置html页面,发现爆出了js错误,网上搜索没有发现任何有用的信息,于是换了点触验证,点触也一个样子,js报错,后来还是打算把目标放在reCAPTCHA上,最后在locer提示下在github找到了sdk和文档还有demo,然后google搜索了how to use recaptcha in ajax关键词找到了在ajax中的使用方法,接入很简单,很顺利.
接入部分
先到https://www.google.com/recaptcha/admin填写你的域名选择验证码版本(我使用的是v2版本),你也可以填写本地开发域名,比如xxx.lan,在本地可以正常使用
然后集成reCPTCHA的sdk,这里我使用的thinkphp5,它支持使用composer来安装包,于是我使用composer require google/recaptcha "~1.1"
来安装这个包,当然你也可以直接下载包手动集成,地址是:https://github.com/google/recaptcha
然后是php代码
$recaptcha = new \ReCaptcha\ReCaptcha('这里填写google给你的secret');
$resp = $recaptcha->verify('这里是客户表单提交的验证码', '客户的ip');
if (!$resp->isSuccess()) {
return $this->error('未通过验证!');
}
然后是前端html代码
<div class="g-recaptcha" data-sitekey="google给你的sitekey"></div>
<!-- google验证码 -->
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
$.ajax({
url:"/ssl/index/create.html",
type:'post',
// async:false,
data:{
'fname':$('#srk-fname').val(),
'lname':$('#srk-lname').val(),
'email':$('#srk-email').val(),
'phone':$('#srk-phone').val(),
'csr':$('#srk-csr').val(),
// 'captcha':$('#srk-captcha').val()
'g-recaptcha-response':grecaptcha.getResponse() //获取reCAPTCHA验证码数据
},
success:function(data){}
}
</script>
https://www.recaptcha.net/recaptcha/api.js
把js换成这个就能正常使用验证码,谷歌在国内解析到了北京服务器,可惜官方api还是默认用google.com
使用reCAPTCHA的理由之一是把不需要的人挡在外面,真正需要的人知道怎么做
那个你还需要开放exec,我最早的版本也是参照那个做的,到beta0.3已经换了另一种方式了
另外一种方式怎么做呢 求教博主。我按照你的提示把exec php5改成php了,然后发现没有定义用户名和密码。又不会了@(哈哈)
你必须要有那个账户和密码才可以,防止被滥用,不能公开讨论
我知道咋回事了,原来是买服务器送无线证书。 请问现在这样的服务器还能买吗
可以,买哪个最低配的就好
请问博主是什么时候重制ssl的证书个数的。看到的一直剩余零
因为ssl站点访问较大,而且读取sql也较为频繁,我这小独服的硬盘可能撑不住,搬到了namecheap的虚拟主机,但是忽略了虚拟主机的时区问题,今天8点左右才重置,现在已经调整了cron的执行时间,能不能行第二天才会有结果
你的时区是 UTC+8? 没有重置
并不是UTC+8,已经发现今天的还没重置,等效手动重置
能邮件联系? 我需要帮助@(酷)
谢谢你,今天正常了@(呵呵)
邮箱自己找,发邮件时说明来源和问题即可
给您发邮件,可能被至垃圾邮件了吧。@(呵呵) 升级为 0.4.6 之后凌晨后没有重置。还有我需要的证书可能较多,能合作?
2017-12-06 00:00 今天的证书没有刷新@(呵呵)
这个免费证书怎么做到的。是利用漏洞吗?