adiachenko/laravel-recaptcha

该包已被废弃,不再维护。作者建议使用 albertcht/invisible-recaptcha 包。

Laravel 框架的 Google reCAPTCHA

v3.1.1 2017-04-28 17:37 UTC

This package is auto-updated.

Last update: 2019-01-25 18:28:52 UTC


README

reCAPTCHA 是一个免费服务,可保护您的网站免受垃圾邮件和滥用。它使用先进的风险评估技术来区分人类和机器人。

这个包有什么不同之处?

  • 对前端采用零干预的方法。没有晦涩的渲染助手,只有准备好可以直接使用的模板,您可以按需自定义或丢弃。
  • 功能可以通过在您的 .env 文件中注释掉相应的凭证来全局禁用。因此,它不会干扰浏览器测试设施或您的一般开发工作流程。

支持 v2 和隐形 reCAPTCHA。

安装

要开始使用,请通过 Composer 软件包管理器安装 LaravelRecaptcha

composer require adiachenko/laravel-recaptcha

在配置文件 config/app.phpproviders 数组中注册 LaravelRecaptcha 服务提供者

Adiachenko\LaravelRecaptcha\RecaptchaServiceProvider::class,

config/services.php 文件中配置您的 reCAPTCHA 凭据

    'recaptcha' => [
        'key' => env('RECAPTCHA_SITE_KEY'),
        'secret' => env('RECAPTCHA_SECRET_KEY'),
    ],

接下来,将它们添加到您的 .env 文件中。按照 此链接 创建您自己的凭证。

如果任何凭证为空或未设置,即使所有其他模板都到位,reCAPTCHA 也会全局禁用。太棒了!

RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=

将以下验证规则添加到您将要保护的 reCAPTCHA 表单中

'g-recaptcha-response' => 'recaptcha',

建议省略 required 验证规则,因为您可能只想在生产环境中保护您的表单,并跳过开发(测试)环境。

要发布预构建的视图部分,请使用 Artisan 命令 vendor:publish。默认标记假定使用 Bootstrap 4,但很容易进行自定义。

php artisan vendor:publish --tag=laravel-recaptcha

最后,如果尚未这样做,请将 命名堆栈 @stack('scripts') 添加到您的布局中(任何位置都可以,但请确保它在使用受保护的表单之前渲染)并将部分包含到您选择的表单中

脚本标签没有在表单本身中定义,这样您就不会在使用 JavaScript 框架时意外遇到问题(实际上,这是 Vue.js 的情况)。

reCAPTCHA v2

@include('vendor.recaptcha.v2')

隐形 reCAPTCHA

@include('vendor.recaptcha.invisible', [
  'selector' => '#forgot-password',
  'text' => 'Send Password Reset Link',
  'class' => 'btn btn-outline-primary'
])

隐形 reCAPTCHA 通过动态连接到您的表单提交按钮,而不是打印单独的小部件,因此我们需要提供一些额外的数据来渲染实际的按钮。在这种情况下,selector 是您受保护表单的查询选择器。