daltcore / invisible-recaptcha
为 Laravel 提供的无形 reCAPTCHA。
Requires
- php: ^5.6.4 || ^7.0 || ^8.0
- guzzlehttp/guzzle: ^7
- illuminate/support: ^5.0|^6.0|^7.0|^8.0
Requires (Dev)
- illuminate/view: ^5.0|^6.0|^7.0|^8.0
- phpunit/phpunit: ^8.0
README
为什么选择无形 reCAPTCHA?
无形 reCAPTCHA 是 reCAPTCHA v2(无 captcha)的改进版本。在 reCAPTCHA v2 中,用户需要点击按钮:“我不是机器人”来证明他们是人类。在无形 reCAPTCHA 中,不会嵌入 captcha 框供用户点击。它是完全不可见的!只有徽章会在页面底部显示,提示用户您的网站正在使用这项技术。(徽章可以隐藏,但不建议隐藏。)
注意
- 主分支不支持多 captcha 功能,如果您需要,请使用
multi-forms
分支。(大多数情况下,您在单个页面上放置多个 captcha 时,是在误用 recaptcha。)
安装
composer require albertcht/invisible-recaptcha
Laravel 5
设置
将 ServiceProvider 添加到 app/config/app.php
文件中的 providers 数组中。
AlbertCht\InvisibleReCaptcha\InvisibleReCaptchaServiceProvider::class,
它还支持 Laravel 5.5 的包发现。
配置
在设置您的配置之前,请记住在申请密钥时选择 无形 reCAPTCHA
。
将 INVISIBLE_RECAPTCHA_SITEKEY
、INVISIBLE_RECAPTCHA_SECRETKEY
添加到 .env 文件中。
// required
INVISIBLE_RECAPTCHA_SITEKEY={siteKey}
INVISIBLE_RECAPTCHA_SECRETKEY={secretKey}
// optional
INVISIBLE_RECAPTCHA_BADGEHIDE=false
INVISIBLE_RECAPTCHA_DATABADGE='bottomright'
INVISIBLE_RECAPTCHA_TIMEOUT=5
INVISIBLE_RECAPTCHA_DEBUG=false
您可以选择三种不同的 captcha 风格进行设置:
bottomright
、bottomleft
、inline
如果将
INVISIBLE_RECAPTCHA_BADGEHIDE
设置为 true,则可以隐藏徽章标志。
您可以通过将
INVISIBLE_RECAPTCHA_DEBUG
设置为 true 来在浏览器控制台查看这些 captcha 元素的绑定状态。
使用方法
在渲染 captcha 之前,请记住以下注意事项
render()
或renderHTML()
函数必须在表单元素内调用。- 您必须确保您的提交按钮的
type
属性必须是submit
。 - 您的表单中只能有一个提交按钮。
在您的视图中显示 reCAPTCHA
{!! app('captcha')->render() !!} // or you can use this in blade @captcha
支持自定义语言
{!! app('captcha')->render('en') !!} // or you can use this in blade @captcha('en')
与 VueJS 等 JavaScript 框架一起使用
render()
过程包括三个独立的部分,可以在使用像 VueJS 这样的框架时单独渲染,该框架在模板中包含 <script>
标签时会抛出控制台错误。
您可以在以下位置渲染 polyfill(例如,在您的 HTML 的头部):
{!! app('captcha')->renderPolyfill() !!} // Or with blade directive: @captchaPolyfill
您可以使用以下内容渲染 HTML,这需要放在您的 `