疯狂发明家 / laravel5-recaptcha2
用于Laravel 5的Google Recaptcha V2包装包
1.3
2016-09-09 10:43 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-20 21:42:30 UTC
README
为Laravel 5提供Recaptcha v2。受anhskohbo/no-captcha和greggilbert/recaptcha启发。
安装
运行 'composer require crazyinventor/laravel5-recaptcha2' 或修改你的 composer.json
{ "require": { "crazyinventor/laravel5-recaptcha2": "1.0.1" } }
配置
从管理页面获取recaptcha的密钥。
然后注册服务提供者。
Laravel 5.0
在 /config/app.php
中,将以下内容添加到 providers
'CrazyInventor\Lacaptcha\LacaptchaServiceProvider',
并添加以下内容到 aliases
'Recaptcha' => 'CrazyInventor\Lacaptcha\Facades\Lacaptcha',
Laravel 5.1及更高版本
在 /config/app.php
中,将以下内容添加到 providers
CrazyInventor\Lacaptcha\LacaptchaServiceProvider::class,
并添加以下内容到 aliases
'Recaptcha' => CrazyInventor\Lacaptcha\Facades\Lacaptcha::class,
发布配置文件
从你的Laravel安装目录下的shell中运行以下命令来发布recaptcha
配置文件
php artisan vendor:publish
这将在你的Laravel安装目录中创建一个名为config/recaptcha.php
的文件。你可以直接将你的sitekey和secret添加到该文件中,或者将密钥添加到你的.env
文件中。
.env文件
将RECAPTCHA_SECRET
和RECAPTCHA_SITEKEY
添加到你的.env
文件中
RECAPTCHA_SECRET=[secret-key]
RECAPTCHA_SITEKEY=[site-key]
将[secret-key]
和[site-key]
替换为你的密钥。
使用
- 在你的表单中,使用
{!! Recaptcha::render() !!}
来输出标记。 - 为了验证你的表单,添加以下规则
$rules = [ // ... 'g-recaptcha-response' => 'required|recaptcha', ];
测试
在测试你的应用程序时,你可能希望跳过recaptcha部分。为此,请在测试的开始处添加以下行
// prevent validation error on captcha Recaptcha::shouldReceive('verify') ->once() ->andReturn(true); // provide hidden input for your 'required' validation Recaptcha::shouldReceive('render') ->zeroOrMoreTimes() ->andReturn('<input type="hidden" name="g-recaptcha-response" value="1" />');
使用Laravel 5.4和Dusk进行测试
不幸的是,模拟在Laravel Dusk中不起作用。但你可以通过添加以下代码到你的测试中来非常容易地覆盖验证器函数。
$app = $this->app; $app['validator']->extend('recaptcha', function ($attribute, $value) use ($app) { return true; });