famdirksen/recaptcha

Laravel 4, 5, 6 & 7的reCAPTCHA验证器

3.1 2020-07-21 13:53 UTC

This package is auto-updated.

Last update: 2024-09-21 23:14:47 UTC


README

所有美好的事物都必将走到尽头。遗憾的是,我没有时间来维护这个包,所以Laravel 6的发布就是一个很好的机会来做出一个干净的决裂。你应该看看分支,看看是否有人继续这个项目。

感谢大家多年来对这个包的支持!

Recaptcha

Laravel 6的reCAPTCHA验证器。

  • 寻找Laravel 4版本?请拉取最新的1.x标签。
  • 对于Laravel 5.0,请拉取最新的2.0标签。
  • 对于Laravel 6.0,请拉取最新的3.0标签。

安装

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

{
    "require": {
        "famdirksen/recaptcha": "~3.0"
    }
}

配置

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

并添加以下内容到aliases

'Recaptcha' => Famdirksen\Recaptcha\Facades\Recaptcha::class,
  1. 运行php artisan vendor:publish --provider="Famdirksen\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的语言默认设置为日语。如果您想进一步自定义,您可以通过render选项传递选项

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

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

语言

要更改验证码的语言,只需在选项中传递一个语言即可

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

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

自定义模板

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

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

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

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

v1自定义

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

限制

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