vizuaalog/laravel-recaptcha

此包已被废弃,不再维护。没有推荐替代包。

轻松将 Google reCaptcha 集成到您的表单中。

1.0.3 2016-11-23 22:31 UTC

This package is auto-updated.

Last update: 2022-03-01 00:20:47 UTC


README

如果您有公开的表单,添加一些形式的验证码可能是个好主意。这有助于减少机器人提交表单时收到的垃圾邮件。

reCaptcha 是 Google 对验证码的解决方案。用户不必输入难以辨认的文本,他们只需简单地点击复选框即可。如果 API 不确定那是“人为”点击,则用户将被要求执行涉及图片的操作。

我经常在私人工作和专业工作中使用 reCaptcha。我也使用 Laravel。输入 reCaptcha 验证代码可能很烦人。因此,Laravel reCaptcha 诞生了。

安装

要安装 Laravel reCaptcha,只需将其添加到您的 composer.json

"require": {
    ...
    "vizuaalog/laravel-recaptcha": "^1.0.0",
    ...
}

或者通过 composer CLI 添加

composer require vizuaalog/laravel-recaptcha

然后,将外观和提供者添加到您的 Laravel 应用中的 config/app.php 文件

'providers' => [
    ...
    VizuaaLOG\Recaptcha\RecaptchaServiceProvider::class,   
    ...
],

'aliases' => [
    ...
    'Recaptcha' => VizuaaLOG\Recaptcha\Facades\RecaptchaFacade::class,
    ...
]

配置

在您可以使用 Laravel reCaptcha 之前,您需要通过 [reCaptcha 控制台](https://www.google.com/recaptcha/admin) 配置站点密钥和密钥。

设置完成后,更新您的 .env 文件以包含以下内容

RECAPTCHA_KEY=YourSiteKey
RECAPTCHA_SECRET=YourSiteSecret

使用方法

在您的表单中,您需要渲染 reCaptcha 框。您可以通过以下方法在需要显示框的位置进行操作

{!! Recaptcha::render() !!}

在控制器顶部,您需要添加一个使用语句来加载 Recaptcha 外观,这是通过 RecaptchaServiceController 自动注册的。

<?php

use Recaptcha;
...

在您的控制器中,在表单提交的地方,您可以使用以下方法来检查验证码是否成功。这返回一个布尔值

if(Recaptcha::check($request)) {
    // Success
} else {
    // Fail
}

如果检查失败,您可以使用以下方法访问从 API 收到的错误,这返回一个错误数组

$errors = Recaptcha::getErrors();

以下是一个示例控制器,展示了潜在的“现实世界”示例。

<?php

namespace App\Controllers;

use App\Post;
use Recaptcha;
use App\Http\Controllers\Controller;

class PostController extends Controller {
    // ... Your other methods above this
    public function store(Request $request, $id)
    {
        // Check to see if the captcha was completed
        if(!Recaptcha::check($request)) {
            return 'Captcha error: ' . Recaptcha::getErrors()[0];
        }

        Post::create($request->except(['_token', 'g-recaptcha-response']));

        return 'Completed';
    }
    // ... Your other methods below this
}

问题 / 贡献

如果您发现任何错误、问题或希望为此项目做出贡献,请提交问题或拉取请求,详细说明错误或贡献。