使用谷歌 Invisible reCAPTCHA 验证

   文档地址

相应demo代码

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
     <script>
       function onSubmit(token) {
         document.getElementById("demo-form").submit();
       }
     </script>
  </head>
  <body>
    <form id='demo-form' action="?" method="POST">
      <button class="g-recaptcha" data-sitekey="your_site_key" data-callback='onSubmit'>Submit</button>
      <br/>
    </form>
  </body>
</html>

该脚本必须使用 HTTPS 协议加载,并且可以不受限制地从页面上的任何位置包含。

验证用户的响应

本页说明如何验证用户对来自应用程序后端的 reCAPTCHA 质询的响应。

对于 Web 用户,您可以通过以下三种方式之一获取用户的响应令牌:

  • g-recaptcha-response用户在您的网站上提交表单时的 POST 参数
  • grecaptcha.getResponse(opt_widget_id)用户完成 reCAPTCHA 质询后
  • 如果在标记属性或方法中的回调参数中指定,则作为回调函数的字符串参数data-callbackg-recaptchagrecaptcha.render

API 请求

网址:https://www.google.com/recaptcha/api/siteverify 方法:POST

开机自检参数描述
秘密必需的。您的站点和 reCAPTCHA 之间的共享密钥。
回复必需的。由您站点上的 reCAPTCHA 客户端集成提供的用户响应令牌。
远程IP可选的。用户的 IP 地址。

API 响应

响应是一个 JSON 对象:

{
  "success": true|false,
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}

需到后台配置网站信息和公钥私钥

https://www.google.com/recaptcha/admin

php版后台验证代码:

 //初始化
        $curl  =  curl_init ( ) ;
        //设置抓取的url
        curl_setopt ( $curl , CURLOPT_URL ,  $url ) ;
        //设置头文件的信息作为数据流输出
        curl_setopt ( $curl , CURLOPT_HEADER ,  0 ) ;
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt ( $curl , CURLOPT_RETURNTRANSFER ,  1 ) ;
        //设置post方式提交
        curl_setopt ( $curl , CURLOPT_POST ,  1 ) ;
        //设置post数据
        $post_data  =  array (
            "response"  =>  '' ,
            "secret"  => ''
        ) ;

        curl_setopt ( $curl , CURLOPT_POSTFIELDS ,  $post_data ) ;
        //执行命令
        $data  =  curl_exec ( $curl ) ;
        //关闭URL请求
        curl_close ( $curl ) ;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值