mannysoft / recaptcha
Laravel 5 reCAPTCHA 验证器
2.2.0
2017-04-06 17:10 UTC
Requires
- php: >=5.3.0
- illuminate/support: ~5.1
README
Laravel 5 的 reCAPTCHA 验证器。
(寻找 Laravel 4 版本?拉取最新 1.x 标签。对于 Laravel 5.0,拉取最新 2.0 标签。)
寻找维护者
tldr; 我真的没有时间自己维护这个包,所以我在寻找帮助。如果你感兴趣,请在 #146 上留言。谢谢!
安装
将以下行添加到 composer.json 的 require 部分
{
"require": {
"greggilbert/recaptcha": "dev-master"
}
}
设置
- 在
/config/app.php中,添加以下内容到providers
Greggilbert\Recaptcha\RecaptchaServiceProvider::class,
和以下内容到 aliases
'Recaptcha' => Greggilbert\Recaptcha\Facades\Recaptcha::class,
- 运行
php artisan vendor:publish --provider="Greggilbert\Recaptcha\RecaptchaServiceProvider"。 - 在
/config/recaptcha.php中,输入你的 reCAPTCHA 公钥和私钥。
- 如果你不使用最新的 reCAPTCHA 版本,将
version设置为 1。 - 如果你升级到 reCAPTCHA 的 v2 版本,请注意,你之前版本的密钥将不会工作,你需要在 reCAPTCHA 管理员 中生成一组新的密钥。
- 该包包含默认的验证消息,但如果你想自定义它,请将以下行添加到
resources/lang/[lang]/validation.php
'recaptcha' => 'The :attribute field is not correct.',
用法
v2 (无验证码)
- 在你的表单中,使用
{!! Recaptcha::render() !!}输出标记。 - 在你的验证规则中添加以下内容
$rules = [ // ... 'g-recaptcha-response' => 'required|recaptcha', ];
v1 (旧版)
- 在你的表单中,使用
{!! Recaptcha::render() !!}输出标记。 - 在你的验证规则中添加以下内容
$rules = [ // ... 'recaptcha_response_field' => 'required|recaptcha', ];
还建议在验证时添加 required。
自定义
reCAPTCHA v2 允许通过多个选项自定义小部件,具体请参考 官方文档。你可以通过六个允许的键来配置验证码的输出:theme、type、lang、callback、tabindex 和 expired-callback。
在配置文件中,你可以创建一个 options 数组来设置默认行为。例如
// ... 'options' => [ 'lang' => 'ja', ],
将默认所有 reCAPTCHAs 的语言设置为日语。如果你想进一步自定义,可以通过 render 选项传递选项
echo Recaptcha::render([ 'lang' => 'fr' ]);
传递给 Recaptcha::render 的选项将始终覆盖配置。
语言
要更改验证码的语言,只需将语言作为选项的一部分传递
'options' => [ 'lang' => 'fr', ],
有关有效语言代码的列表,请参阅 官方文档。
自定义模板
或者,如果你想设置一个默认模板而不是标准模板,可以使用配置
// ... 'template' => 'customCaptcha',
或者你可以通过表单选项传递它
echo Recaptcha::render([ 'template' => 'customCaptcha' ]);
v1 自定义
有关 v1 自定义选项,请参考 旧版文档 并相应地应用。
限制
由于 Google 显示 reCAPTCHA 的方式,如果从 AJAX 调用加载你的表单,则此包将无法工作。如果你需要这样做,你应该使用 Google 提供的 备用方法之一。