nisicreative/laravel-recaptcha

为您的Laravel项目提供一个简单的reCAPTCHA实现。

1.0.8 2023-07-18 15:36 UTC

This package is auto-updated.

Last update: 2024-09-18 18:14:59 UTC


README

轻松将Google的reCAPTCHA集成到您的Laravel 5+项目中。

安装

composer require nissicreative/laravel-recaptcha

设置

将服务提供者添加到app/config/app.php中的providers数组中。
(如果您使用Laravel 5.5+,可以跳过此步骤,因为它将使用Laravel的自动发现功能。)

Nissi\ReCaptcha\ReCaptchaServiceProvider::class,

配置

访问https://google.com/recaptcha并注册您的站点。请确保列出您将使用该小部件的所有域名,包括任何本地或测试域名(例如 localhostmysite.test)。您将被分配一个站点密钥和一个密钥。)

将这些reCAPTCHA密钥添加到您的.env文件中

RECAPTCHA_KEY=my-site-key
RECAPTCHA_SECRET=my-secret-key

这是默认的配置文件

<?php

return [
    'key'           => env('RECAPTCHA_KEY'),
    'secret'        => env('RECAPTCHA_SECRET'),
    'script_url'    => 'https://www.google.com/recaptcha/api.js',
    'verify_url'    => 'https://www.google.com/recaptcha/api/siteverify',
    'error_message' => 'reCAPTCHA validation failed. Please try again.',
    'log_responses' => false,
];

如果您想修改配置文件和/或视图,可以运行

php artisan vendor:publish

用法:表单页面

在您页面的<head>部分中,添加此行以包含远程Google JavaScript文件

@include('recaptcha::script')

然后,在您的表单中插入小部件

@include('recaptcha::widget')

就这样!您现在应该在刷新页面时看到reCAPTCHA小部件。

验证请求

验证很简单:只需在验证器中添加一个recaptcha规则。例如,在一个控制器中

$this->validate($request, [
    'g-recaptcha-response' => 'required|recaptcha',
    // Other rules...
], [
    // Custom messages
    'g-recaptcha-response.required' => 'Please complete the reCAPTCHA.',
]);

recaptcha规则会负责通过Guzzle将输入发送到Google的服务器,并在验证成功时返回true

就这样!

享受您减少垃圾邮件的生活方式。