talent-loom/laravel-recaptcha-v3

PHP 包,用于在 Laravel 中集成 reCAPTCHA v3

v11.0.0 2024-08-11 09:05 UTC

This package is auto-updated.

Last update: 2024-09-11 09:24:01 UTC


README

Logo

Laravel ReCAPTCHA V3 是一个非常简单的 Laravel 9.x | 10.x | 11.x 包,用于在您的应用程序中嵌入 Google reCAPTCHA。

什么是 reCAPTCHA?

Google 提供了 reCAPTCHA v3 和 reCAPTCHA Enterprise,以帮助您保护您的网站免受欺诈活动、垃圾邮件和滥用的侵害。有关 reCAPTCHA 和 reCAPTCHA Enterprise 功能的更多信息,请参阅reCAPTCHA 版本功能比较

更多信息请参阅 Google reCAPTCHA 开发者指南

reCAPTCHA 可用版本

目前有 3 个版本可用(适用于 Web 应用程序)

首先获取您的密钥!

首先,您需要在这里创建自己的 API 密钥 这里

按照说明操作,在过程结束时,您将找到 站点密钥密钥。请妥善保管它们,您很快就会需要它们!

系统要求

Composer

您可以通过 composer 安装此包

$ composer require talent-loom/laravel-recaptcha-v3

LARAVEL 9.x | 10.x 的配置

Laravel 9.x 或 10.x 在 config/app.php 中注册了提供者

'providers' => [
    ...
    TalentLoom\RecaptchaV3\RecaptchaV3ServiceProvider::class,
];

您可以使用外观来缩短代码。将 ReCaptchaV3 添加到您的别名中

'aliases' => [
    ...
    'ReCaptchaV3' => TalentLoom\RecaptchaV3\Facades\RecaptchaV3::class,
];

LARAVEL 11.x 的配置

Laravel 11.x 在 bootstrap/providers.php 中注册了提供者

    return [
        App\Providers\AppServiceProvider::class,
        TalentLoom\RecaptchaV3\RecaptchaV3ServiceProvider::class,
    ];

您可以使用外观来缩短代码。将 ReCaptchaV3 添加到您的别名中 config/app.php

return [
    ....
    'aliases' => Facade::defaultAliases()->merge([
        'ReCaptchaV3' => TalentLoom\RecaptchaV3\Facades\RecaptchaV3::class,
    ])->toArray(),
];

发布包

使用以下 artisan 命令创建 config/recaptchaV3.php 配置文件

$ php artisan vendor:publish --provider="TalentLoom\RecaptchaV3\RecaptchaV3ServiceProvider"

环境变量

要运行此项目,您需要将以下环境变量添加到您的 .env 文件中

RECAPTCHA_V3_SITE_KEY

RECAPTCHA_V3_SECRET_KEY

重新加载配置缓存文件

!!! 重要 !!! 每次更改配置时,请运行以下 shell 命令

$ php artisan config:cache

实现

在请求中添加验证

use TalentLoom\RecaptchaV3\Rules\RecaptchaV3Rule;

[
    ...
    'recaptcha_v3' => new RecaptchaV3Rule(),
];

在 Blade 中嵌入

在关闭 </head> 标签之前插入 js() 脚本。

您还可以使用 ReCaptchaV3::js()

<!DOCTYPE html>
<html>
    <head>
        ...
        {!! ReCaptchaV3::js() !!}
    </head>

现在您可以使用 ReCaptchaV3::execute('action', 'form id')

例如

    <form action="..." method="POST" id="loginForm">
        @csrf
        ....
    </form>
        {!! ReCaptchaV3::execute('login-action', 'loginForm') !!}
        </body>
    </html>

运行测试

要运行测试,请运行以下命令

  ./vendor/bin/pest

作者

支持

有关支持,请发邮件至 syedshazeedul@gmail。

许可

MIT