美文网首页
基于Laravel集成隐形的reCAPTCHA

基于Laravel集成隐形的reCAPTCHA

作者: 半夏_mint | 来源:发表于2017-06-12 17:41 被阅读0次

隐形 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

相关文章

网友评论

      本文标题:基于Laravel集成隐形的reCAPTCHA

      本文链接:https://www.haomeiwen.com/subject/npilqxtx.html