salahhusa9/laravel-geetest-captcha

Laravel GeeTest Captcha for Laravel 9-10-11

v0.0.2 2024-07-05 20:12 UTC

This package is auto-updated.

Last update: 2024-09-14 11:30:36 UTC


README

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

Laravel Geetest Captcha 是一个包,提供了一种简单的方式将 Geetest Captcha 集成到您的 Laravel 应用程序中。

20240705-122929d

支持我们

您的业务依赖于我们的贡献吗?请通过 Github 赞助 来支持我们。所有的承诺都将用于维护工作和新的精彩功能。

安装

  1. 您可以通过 composer 安装此包
composer require salahhusa9/laravel-geetest-captcha
  1. 您需要在布局文件的 head 标签中添加 @geetestCaptchaAssets()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    @geetestCaptchaAssets()
</head>
<body>
    ...
</body>
</html>
  1. 官方网站 上注册并激活您的 GeeTest 账户
  2. 在仪表板上创建 ID 和密钥
  3. 在 .env 文件中添加 GEETEST_ID 和 GEETEST_KEY

使用方法

在表单中使用

您可以使用如下方式在表单中使用

首先,在页面的页脚添加 @geetestCaptchaInit('captcha-id') 作为 script 标签,其中 captcha-id 是 captcha div 的 ID。

<form method="POST" action="{{ route('login') }}">
    @csrf
    <div class="form-group">
        <label for="email">Email</label>
        <input type="email" name="email" id="email" class="form-control" required>
    </div>
    <div class="form-group">
        <label for="password">Password</label>
        <input type="password" name="password" id="password" class="form-control" required>
    </div>
    <div class="form-group">
        <div id="captcha-id">
            <!-- hire we render geetest captcha -->
        </div>
    </div>
    <button type="submit" class="btn btn-primary">Login</button>
</form>

@geetestCaptchaInit('captcha-id')

对于验证,您可以在控制器中使用 geetest_captcha 规则,如下所示

use Salahhusa9\GeetestCaptcha\Rules\GeetestCaptchaValidate;

public function login(Request $request)
{
    $request->validate([
        'email' => 'required|email',
        'password' => 'required',
        'geetest_captcha' => ['required', new GeetestCaptchaValidate]
    ]);

    // your logic
}

通过中间件进行验证

您可以使用如下方式在中间件中使用

    use Salahhusa9\GeetestCaptcha\Http\Middleware\ValidateGeetestCaptcha;

    Route::post('login', [LoginController::class, 'login'])->middleware(ValidateGeetestCaptcha::class);

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近更改的详细信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

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

鸣谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。