基于 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
本帖由系统于 3年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

国内不能直接用吧:sunny:

6年前 评论

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