ham3da/recaptcha

适用于 Laravel 9 的 reCAPTCHA 验证器

2.3.3 2024-06-03 13:13 UTC

This package is auto-updated.

Last update: 2024-09-03 14:02:18 UTC


README

Laravel 5 的 reCAPTCHA 验证器。

(寻找 Laravel 4 版本?请拉取最新 1.x 标签。对于 Laravel 5.0-9.0,请拉取最新 2.0 标签。)

安装

将以下行添加到 composer.jsonrequire 部分

{
    "require": {
        "ham3da/recaptcha": "2.3.0"
    }
}

设置

  1. /config/app.php 中,将以下内容添加到 providers
Greggilbert\Recaptcha\RecaptchaServiceProvider::class,

以及以下内容到 aliases

'Recaptcha' => Greggilbert\Recaptcha\Facades\Recaptcha::class,
  1. 运行 php artisan vendor:publish --provider="Greggilbert\Recaptcha\RecaptchaServiceProvider"
  2. /config/recaptcha.php 中,输入您的 reCAPTCHA 公钥和私钥。
  • 如果您不是使用最新的 reCAPTCHA 版本,将 version 设置为 1。
  • 如果您正在升级到 reCAPTCHA 的 v2 版本,请注意,您之前的版本中的密钥将不再有效,您需要在 reCAPTCHA 管理员 中生成一组新的密钥。
  1. 此包附带默认的验证消息,但如果您想自定义它,请在 resources/lang/[lang]/validation.php 中添加以下行
    'recaptcha' => 'The :attribute field is not correct.',

用法

v2 (无验证码)

  1. 在您的表单中,使用 {!! Recaptcha::render() !!} 输出标记。
  2. 在您的验证规则中添加以下内容
    $rules = [
        // ...
        'g-recaptcha-response' => 'required|recaptcha',
    ];

v1 (旧版)

  1. 在您的表单中,使用 {!! Recaptcha::render() !!} 输出标记。
  2. 在您的验证规则中添加以下内容
    $rules = [
        // ...
        'recaptcha_response_field' => 'required|recaptcha',
    ];

建议在验证时添加 required

自定义

reCAPTCHA v2 允许通过许多选项自定义小部件,这些选项在 官方文档中列出。您可以通过六个允许的键配置验证码的输出:themetypelangcallbacktabindexexpired-callback

在配置文件中,您可以创建一个 options 数组来设置默认行为。例如

    // ...
    'options' => [
		'lang' => 'ja',
	],

将默认所有 reCAPTCHAs 的语言为日语。如果您想进一步自定义,您可以通过渲染选项传递选项

echo Recaptcha::render([ 'lang' => 'fr' ]);

传递到 Recaptcha::render 的选项将始终覆盖配置。

语言

要更改验证码的语言,只需将语言作为选项的一部分传递

    'options' => [
        'lang' => 'fr',
	],

有关有效语言代码的列表,请参阅 官方文档

自定义模板

或者,如果您想设置默认模板而不是标准模板,可以使用配置

    // ...
    'template' => 'customCaptcha',

或者您可以通过表单选项传递它

echo Recaptcha::render([ 'template' => 'customCaptcha' ]);

v1 自定义

有关 v1 自定义选项,请参阅 旧版文档 并相应地应用。

限制

由于 Google 显示 reCAPTCHA 的方式,如果您的表单是从 AJAX 调用中加载的,则此包将无法正常工作。如果您需要这样做,您应该使用 Google 提供的 备用方法之一