kristian / no-captcha
No CAPTCHA reCAPTCHA For Laravel.
该包的官方仓库似乎已不存在,因此该包已被冻结。
2.2
2016-08-04 07:23 UTC
Requires
- php: >=5.6.4
- illuminate/support: 5.0.*|5.1.*|5.2.*|5.3.*
README
对于 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_SECRET
和 NOCAPTCHA_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 表单元素的响应。为此
- 在 config/app.conf 中设置 NoCaptcha 门面
'NoCaptcha' => 'Anhskohbo\NoCaptcha\Facades\NoCaptcha'
- 对于涉及 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>