xetaio / recaptcha
为 Laravel 5 的 reCAPTCHA 验证器
4.0.0
2020-08-02 19:07 UTC
Requires
- php: ^7.2.5
- illuminate/support: ^7.0
README
为 Laravel 的 reCAPTCHA 验证器
安装
composer require xetaio/recaptcha
设置
- 在
/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 提供的替代方法之一。