vizuaalog / laravel-recaptcha
轻松将 Google reCaptcha 集成到您的表单中。
Requires
- php: >=5.5
- illuminate/support: ^5.2.0
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 }
问题 / 贡献
如果您发现任何错误、问题或希望为此项目做出贡献,请提交问题或拉取请求,详细说明错误或贡献。