kristian/no-captcha

No CAPTCHA reCAPTCHA For Laravel.

该包的官方仓库似乎已不存在,因此该包已被冻结。

2.2 2016-08-04 07:23 UTC

This package is not auto-updated.

Last update: 2024-01-20 15:39:16 UTC


README

recaptcha_anchor 2x

对于 Laravel 4,请使用 v1 分支。

安装

将以下行添加到 composer.json 文件的 require 部分

{
    "require": {
        "anhskohbo/no-captcha": "2.*"
    }
}

运行 composer update

Laravel 5

设置

将 ServiceProvider 添加到 app/config/app.php 文件中的 providers 数组中。

Anhskohbo\NoCaptcha\NoCaptchaServiceProvider::class,

配置

.env 文件中添加 NOCAPTCHA_SECRETNOCAPTCHA_SITEKEY

NOCAPTCHA_SECRET=[secret-key]
NOCAPTCHA_SITEKEY=[site-key]

用法

显示 reCAPTCHA
{!! app('captcha')->display(); !!}
验证

'g-recaptcha-response' => 'required|captcha' 添加到规则数组。

$validate = Validator::make(Input::all(), [
	'g-recaptcha-response' => 'required|captcha'
]);

测试

当使用 Laravel 测试功能 时,您需要模拟 captcha 表单元素的响应。为此

  1. 在 config/app.conf 中设置 NoCaptcha 门面
'NoCaptcha' => 'Anhskohbo\NoCaptcha\Facades\NoCaptcha'
  1. 对于涉及 captcha 的任何表单测试,您可以选择模拟门面的行为
// prevent validation error on captcha
NoCaptcha::shouldReceive('verifyResponse')
    ->once()
    ->andReturn(true);
// provide hidden input for your 'required' validation
NoCaptcha::shouldReceive('display')
    ->zeroOrMoreTimes()
    ->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');

然后您可以像平常一样测试表单的其余部分。

非 Laravel

查看以下示例

<?php

require_once "vendor/autoload.php";

$secret  = '';
$sitekey = '';
$captcha = new \Anhskohbo\NoCaptcha\NoCaptcha($secret, $sitekey);

if ( ! empty($_POST)) {
    var_dump($captcha->verifyResponse($_POST['g-recaptcha-response']));
    exit();
}

?>

<form action="?" method="POST">
    <?php echo $captcha->display(); ?>
    <button type="submit">Submit</button>
</form>

贡献

https://github.com/anhskohbo/no-captcha/pulls