paragonie / recaptcha
Google PHP ReCAPTCHA 客户端的一个分支,支持代理。
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ^4.8
- vimeo/psalm: ^0|^1
README
这是一个Google PHP ReCAPTCHA客户端的分支,允许你传递cURL选项,例如通过Tor代理请求。
$curl = new ReCaptcha\RequestMethod\CurlPost(null, array( CURLOPT_PROXY => 'http://127.0.0.1:9050/', CURLOPT_PROXYTYPE => CURLPROXY_SOCKS5 )); $recaptcha = new \ReCaptcha\ReCaptcha($secret, $curl); $resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp); if ($resp->isSuccess()) { // verified! } else { $errors = $resp->getErrorCodes(); }
reCAPTCHA PHP客户端库
- 仓库: https://github.com/paragonie/recaptcha
- 版本: 2.1.0
- 许可: BSD,见 LICENSE
描述
reCAPTCHA是一个免费的CAPTCHA服务,可保护网站免受垃圾邮件和滥用。这是Google编写的代码,为第三方提供与reCAPTCHA集成的插件。
安装
Composer(推荐)
Composer 是一个广泛使用的PHP包依赖管理器。这个reCAPTCHA客户端在Packagist上作为 google/recaptcha
提供,可以通过运行 composer require
命令或将库添加到 composer.json
中进行安装。要为您的项目启用Composer,请参阅项目的 入门 文档。
要从命令行添加此依赖项,请从您的项目目录中运行以下命令
composer require paragonie/recaptcha "~2.1"
或者,直接将依赖项添加到您的 composer.json
文件中
"require": { "paragonie/recaptcha": "~2.1" }
直接下载(无Composer)
如果您希望手动安装库(即不使用Composer),则可以使用主项目页面上的链接克隆仓库或下载 ZIP文件。为了方便,src/autoload.php
中提供了一个自动加载脚本,您可以在脚本中将其require进来,而不是Composer的 vendor/autoload.php
。例如
require('/path/to/recaptcha/src/autoload.php'); $recaptcha = new \ReCaptcha\ReCaptcha($secret);
项目中的类根据 PSR-4 标准进行组织,因此当然也可以使用您自己的自动加载器或直接在代码中require所需的文件。
开发安装
如果您想为此项目做出贡献或在自己的环境中运行单元测试,则需要安装开发依赖项,在本例中,这意味着需要 PHPUnit。如果您克隆了仓库并从仓库内部运行 composer install
,这也会为您抓取PHPUnit及其所有依赖项。如果您只需要安装自动加载器,则可以始终指定Composer不在开发模式下运行,例如 composer install --no-dev
。
注意: 这些依赖项仅用于开发,不需要将它们包含在您的生产代码中。
用法
首先,在 https://www.google.com/recaptcha/admin 为您的网站注册密钥
当您的应用程序接收到包含 g-recaptcha-response
字段的表单提交时,您可以使用
<?php $recaptcha = new \ReCaptcha\ReCaptcha($secret); $resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp); if ($resp->isSuccess()) { // verified! } else { $errors = $resp->getErrorCodes(); }
您可以在 examples/example-captcha.php 中看到端到端的工作示例
升级
从1.0.0
此客户端的先前版本仍然可在本仓库的 1.0.0
标签 中找到,但它仅用于参考,将不会收到任何更新。
1.1.0 版本的主要更改如下
- 现在通过 Composer 进行安装;
- 类加载也通过 Composer 进行;
- 类现在具有命名空间;
- 旧的方法调用是
$rc->verifyResponse($remoteIp, $response)
,新的调用是$rc->verify($response, $remoteIp)
贡献
我们接受通过 GitHub Pull Requests 的贡献,但所有贡献者都需要遵循标准的 Google 贡献者许可协议。您可以在 CONTRIBUTING 中找到相关说明。