基于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-recaptcha-integration-with-laravel

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 8,619评论 0 121
  • 必备品文档:DocumentationAPI: API Reference视频:Laracasts速查表:Lara...
    ethanzhang阅读 5,759评论 0 68
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 1、简介 Laravel 提供了多种方法来验证应用输入数据。默认情况下,Laravel 的控制器基类使用Valid...
    伊Summer阅读 1,536评论 0 3
  • 验证 简介 Laravel 对验证应用的输入数据提供了多中途径的实现。默认的,Laravel 的基础控制器类使用了...
    Dearmadman阅读 10,232评论 5 8