adrian1207 / recaptcha
此包已被废弃,不再维护。未建议替代包。
reCAPTCHA Validator for Laravel 5, 6, 7, 8
2.2.1
2021-01-14 15:47 UTC
Requires
- php: >=5.3.0
- illuminate/support: ~5.1|~6.0|~7.0|~8.0
README
所有美好的事物终将走向终结。令人悲伤的事实是,我没有时间来维护这个包,所以Laravel 6的发布就像是一个干净的分割点。你应该看看分支,看看是否有人继续传承。
感谢大家多年来对这个包的支持!
Recaptcha
Laravel 5的reCAPTCHA验证器。
(寻找Laravel 4版本?拉取最新的1.x标签。对于Laravel 5.0,拉取最新的2.0标签。)
安装
将以下行添加到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 提供的替代方法之一。