noopstudios/laravel-recaptchav3

Recaptcha V3 for Laravel 包

1.0.4 2024-03-20 17:43 UTC

This package is auto-updated.

Last update: 2024-09-20 18:54:15 UTC


README

Build Status Total Downloads Latest Stable Version License

Laravel 包用于 Google 的 Recaptcha V3。这是一个专注于 Recaptcha V3 验证码后端验证的轻量级包。

安装

要开始使用,请使用 Composer 将包添加到项目的依赖项中

composer require josiasmontag/laravel-recaptchav3

RECAPTCHAV3_SITEKEYRECAPTCHAV3_SECRET 添加到您的 .env 文件中。(您可以在 这里 获取它们)

RECAPTCHAV3_SITEKEY=sitekey
RECAPTCHAV3_SECRET=secret

可选,您可以发布配置文件

php artisan vendor:publish --provider="Lunaweb\RecaptchaV3\Providers\RecaptchaV3ServiceProvider"

使用方法

初始化 Recaptcha Javascript

Recaptcha v3 在加载到每个页面时效果最佳,以获取关于交互的最全面的信息。因此,将其添加到您的头部或脚部模板中

{!! RecaptchaV3::initJs() !!}

表单

RecaptchaV3::field($action, $name='g-recaptcha-response') 创建一个不可见输入字段,在加载时填充 Recaptcha 令牌。

<form method="post" action="/register">
    {!! RecaptchaV3::field('register') !!}
    <input type="submit" value="Register"></input>
</form>

验证

recaptchav3 验证器添加到规则数组中。该规则接受两个参数:动作名称和最低所需 score(默认为 0.5)。

$validate = Validator::make(Input::all(), [
	'g-recaptcha-response' => 'required|recaptchav3:register,0.5'
]);

获取分数

或者,您也可以获取分数并采取相应的行动

//  RecaptchaV3::verify($token, $action)
$score = RecaptchaV3::verify($request->get('g-recaptcha-response'), 'register')
if($score > 0.7) {
    // go
} elseif($score > 0.3) {
    // require additional email verification
} else {
    return abort(400, 'You are most likely a bot');
}

自定义验证错误消息

将以下值添加到 validation 语言文件中的 custom 数组中

'custom' => [
    'g-recaptcha-response' => [
        'recaptchav3' => 'Captcha error message',
    ],
],

隐藏 ReCAPTCHA 徽章

添加到您的 CSS 文件中

.grecaptcha-badge { visibility: hidden !important; }

测试

为了使表单可测试,您可以模拟 RecaptchaV3 门面

RecaptchaV3::shouldReceive('verify')
    ->once()
    ->andReturn(1.0);