paragonie/recaptcha

Google PHP ReCAPTCHA 客户端的一个分支,支持代理。

v2.1.0 2017-11-05 19:10 UTC

This package is auto-updated.

Last update: 2024-09-21 20:12:56 UTC


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客户端库

Build Status Latest Stable Version Total Downloads

描述

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 中找到相关说明。