goedemiddag/laravel-recaptcha

一个简单易用的Laravel Google ReCaptcha v3包

v1.0.1 2024-05-28 09:35 UTC

This package is auto-updated.

Last update: 2024-08-28 10:06:50 UTC


README

这是一个用于Google reCAPTCHA v3的Laravel包。

安装

您可以通过composer安装此包

composer require goedemiddag/laravel-recaptcha

将以下环境变量添加到您的.env文件中

RECAPTCHA_SITE_KEY=YOUR_SITE_KEY
RECAPTCHA_SECRET_KEY=YOUR_SECRET_KEY
RECAPTCHA_THRESHOLD=0.3

配置

您可以选择发布配置文件

php artisan vendor:publish --provider="Goedemiddag\ReCaptcha\ReCaptchaServiceProvider" --tag="recaptcha-config"

这是已发布配置文件的内容

return [
    'site_key' => env('RECAPTCHA_SITE_KEY'),
    'secret_key' => env('RECAPTCHA_SECRET_KEY'),

    // The threshold to pass the recaptcha validation, from 0 (easiest) to 1 (hardest)
    'threshold' => env('RECAPTCHA_THRESHOLD', 0.3),

    // Provide IP addresses that shouldn't be validated
    'skip_ips' => [
        // 127.0.0.1
    ],
];

翻译

默认情况下,此包提供荷兰语和英语翻译。您可以选择发布翻译

php artisan vendor:publish --provider="Goedemiddag\ReCaptcha\ReCaptchaServiceProvider" --tag="recaptcha-lang"

用法

此包旨在为您的应用程序后端提供Google ReCaptcha v3验证,并提供一些工具以便在前端使用。

快速入门

<x-recaptcha::input /> blade组件添加到您的表单中

<form method="POST">
    @csrf
    <x-recaptcha::input />
    
    ... 
    
    <button type="submit">Submit</button>
</form>

<x-recaptcha::script /> blade组件添加到您的布局末尾

<body>
    ...page content...

    <x-recaptcha::script />
</body>

将事件监听器绑定到表单提交事件,请根据您的应用程序调整此设置

document.querySelector('form').addEventListener('submit', function (event) {
    event.preventDefault();
    
    window.reCaptcha.render('submit', function (token) {        
        // Set token value
        event.target.querySelector('input[name="g-recaptcha-response"]').value = token;
        
        // Submit form
        event.target.submit();        
    });
});

ReCaptchaRule添加到您的表单请求中

public function rules(): array
{
    return [
        'g-recaptcha-response' => ['required', new ReCaptchaRule()],
    ];
}

贡献

发现了错误或想添加新功能?太好了!还有许多其他方式可以做出有意义的贡献,例如审查悬而未决的pull请求和编写文档。即使是为您找到的错误打开一个问题也是受欢迎的。

在创建pull请求时,请确保它已通过测试,遵循代码标准(运行composer pint:fix为您处理),并请为每个功能创建一个pull请求。作为回报,您将作为贡献者获得认可。