基于 Laravel 集成隐形 reCAPTCHA

隐形 reCaptcha 是谷歌基于 reCaptcha v2(No captcha)——用户只需要点击“我不是机器人”的按钮来证明自己是确确实实的人类而优化改进的一个版本,不需要与用户交互,页面后台自发执行验证。

隐形 reCaptcha,顾名思义便是与传统相比不再嵌入验证码框与用户交互以供验证。同时,页面底部将展示一个logo注明当前页面使用到此技术(当然不想要也可以将其隐藏,但不推荐)。

简单的页面样例:

本文将介绍基于 laravel 快速集成隐形 reCaptcha。

安装

composer require albertcht/invisible-recaptcha

将下述服务提供者添加到 app/config/app.phpproviders 数组中。

AlbertCht\InvisibleReCaptcha\InvisibleReCaptchaServiceProvider::class

配置

前提:谷歌网站申请 API 密钥。

切记,申请时应当选择隐形 reCaptcha。

当项目基本部署完成后,在根目录下的 .env 文件中添加:

INVISIBLE_RECAPTCHA_SITEKEY={siteKey}
INVISIBLE_RECAPTCHA_SECRETKEY={secretKey}
INVISIBLE_RECAPTCHA_BADGEHIDE=false
INVISIBLE_RECAPTCHA_DEBUG=false

隐藏页面底部 logo:INVISIBLE_RECAPTCHA_BADGEHIDE=true
在浏览器控制台上查看这些 captcha 元素的绑定状态:INVISIBLE_RECAPTCHA_DEBUG=true

使用

页面显示 reCaptcha:

{!! app('captcha')->render(); !!} 

自定义语言插件

{!! app('captcha')->render($lang = null); !!}

验证

在 rule 验证数组中添加 'g-recaptcha-response' => 'required|captcha':

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

详细文档和代码查看:链接

参考:https://laravel-news.com/invisible-recaptc...

本作品采用《CC 协议》,转载必须注明作者和本文链接
step by step
本帖由系统于 4年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3

国内不能直接用吧:sunny:

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!