oneduo / laravel-recaptcha-enterprise
这是我创建的laravel-recaptcha-enterprise包
v0.4.2
2024-07-08 09:53 UTC
Requires
- php: ^8.1
- google/cloud-recaptcha-enterprise: ^1.2
- illuminate/contracts: ^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21|^2.0
- pestphp/pest-plugin-laravel: ^1.1|^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
README
用于使用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)。请参阅许可证文件以获取更多信息。