oneduo/laravel-recaptcha-enterprise

这是我创建的laravel-recaptcha-enterprise包

v0.4.2 2024-07-08 09:53 UTC

This package is auto-updated.

Last update: 2024-08-29 20:31:01 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads codecov

用于使用Google reCAPTCHA Enterprise的Laravel包装器。提供方便的验证规则来验证您的令牌分数。

目录

先决条件

简要说明:您可能需要遵循官方文档来开始。

1. 启用reCAPTCHA Enterprise API

在您的Google Cloud控制台中,启用reCAPTCHA Enterprise API。

2. 创建服务帐户

创建以下角色的服务帐户

  • reCAPTCHA Enterprise Agent

3. 创建密钥

为您的服务帐户创建密钥并将其作为JSON文件下载。

4. 使用您的凭证

通过在config/recaptcha-enterprise.php中设置适当的值或通过设置环境变量来使用您的凭证。

安装

您可以通过composer安装此包

composer require oneduo/laravel-recaptcha-enterprise

配置

您可以通过以下方式发布配置文件

php artisan vendor:publish --tag="recaptcha-enterprise-config"

这是已发布配置文件的内容,您需要根据需要进行变量设置

return [
    'site_key' => env('RECAPTCHA_ENTERPRISE_SITE_KEY'),

    'use_credentials' => env('RECAPTCHA_ENTERPRISE_USE_CREDENTIALS', 'default'),

    'credentials' => [
        'default' => [
            'type' => 'service_account',
            'project_id' => env('RECAPTCHA_ENTERPRISE_PROJECT_ID'),
            'private_key_id' => env('RECAPTCHA_ENTERPRISE_PRIVATE_KEY_ID'),
            'private_key' => env('RECAPTCHA_ENTERPRISE_PRIVATE_KEY'),
            'client_email' => $email = env('RECAPTCHA_ENTERPRISE_CLIENT_EMAIL'),
            'client_id' => env('RECAPTCHA_ENTERPRISE_CLIENT_ID'),
            'auth_uri' => 'https://#/o/oauth2/auth',
            'token_uri' => 'https://#/o/oauth2/token',
            'auth_provider_x509_cert_url' => 'https://www.googleapis.com/oauth2/v1/certs',
            'client_x509_cert_url' => 'https://www.googleapis.com/robot/v1/metadata/x509/' . $email,
        ],
    ],
];

使用

您可以通过在业务逻辑中实现可用的Oneduo\RecaptchaEnterprise\Rules\Recaptcha规则来开始使用reCAPTCHA验证规则,以下是一个FormRequest实现的示例

<?php

declare(strict_types=1);

namespace Oneduo\RecaptchaEnterprise\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Oneduo\RecaptchaEnterprise\Rules\Recaptcha;

class TestRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'g-recaptcha-response' => ['required', new Recaptcha()],
        ];
    }

    public function authorize(): bool
    {
        return true;
    }
}

配置阈值

在验证令牌时,您可能希望设置一个分数阈值。您可以通过设置score_threshold配置值来实现这一点。

'score_threshold' => 0.7,

默认阈值为0.5

测试

composer test

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请参阅我们的安全策略以了解如何报告安全漏洞。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。