ossycodes/friendlycaptcha

一个简单包,帮助在Laravel应用中集成FriendlyCaptcha。

v2.1.0 2024-07-02 07:10 UTC

README

Latest Version on Packagist Total Downloads GitHub Actions

此包可以帮助在Laravel应用中设置和验证FriendlyCaptcha小部件和响应

安装

您可以通过Composer安装此包

composer require ossycodes/friendlycaptcha

配置

.env 文件中添加 FRIENDLY_CAPTCHA_SECRETFRIENDLY_CAPTCHA_SITEKEY 以及可选的 FRIENDLY_CAPTCHA_PUZZLE_ENDPOINTFRIENDLY_CAPTCHA_VERIFY_ENDPOINT

FRIENDLY_CAPTCHA_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
FRIENDLY_CAPTCHA_SITEKEY=XXXXXXXXXXXXXXXX
FRIENDLY_CAPTCHA_PUZZLE_ENDPOINT=https://api.friendlycaptcha.com/api/v1/puzzle #optional
FRIENDLY_CAPTCHA_VERIFY_ENDPOINT=https://api.friendlycaptcha.com/api/v1/siteverify #optional

您可以从 这里 获取您的站点密钥,从 这里 获取密钥

使用方法

对于来自CDN的FriendlyCaptcha小部件脚本,在布局文件中添加Blade指令 @friendlyCaptchaRenderWidgetScripts。这应该添加到文档的 <head> 中。

<html>
    <head>
        @friendlyCaptchaRenderWidgetScripts()
    </head>
    <body>
        {{ $slot }}
    </body>
</html>

或者,如果您不想使用Blade指令,可以这样做

 {!! FriendlyCaptcha::renderWidgetScripts() !!}

您有两种方式来添加脚本标签,要么从unpkg(默认)要么从jsdelivr

@friendlyCaptchaRenderWidgetScripts()@friendlyCaptchaRenderWidgetScripts('jsdelivr')

{!! FriendlyCaptcha::renderWidgetScripts() !!}{!! FriendlyCaptcha::renderWidgetScripts('jsdelivr') !!}

您也可以自己托管FriendlyCaptcha小部件脚本

npm install --save friendly-challenge@0.9.9

然后在应用中导入它

import "friendly-challenge/widget";

完成这些后,您可以在 <form> 中调用 renderWidget() 方法,以输出配置了您站点密钥的适当标记(FriendlyCaptcha小部件)。

<form action="/" method="POST">

    {!! FriendlyCaptcha::renderWidget() !!}

    or with custom theme

    {!! FriendlyCaptcha::renderWidget(['dark-theme' => true]) !!}

    or with custom language

    {!! FriendlyCaptcha::renderWidget(['data-lang' => 'en']) !!}

    <button>
        Submit
    </button>
</form>

最后,在服务器上,使用提供的验证规则来验证CAPTCHA响应。

use Illuminate\Validation\Rule;

public function submit(Request $request)
{
    $request->validate([
        'frc-captcha-solution' => ['required', Rule::friendlycaptcha()],
    ]);
}

如果您不想使用宏,可以通过依赖注入或 app() 助手从容器中解析规则的实例。

use Ossycodes\FriendlyCaptcha\Rules\FriendlyCaptcha;

public function submit(Request $request, FriendlyCaptcha $friendlyCaptcha)
{
    $request->validate([
        'frc-captcha-solution' => ['required', $friendlyCaptcha],
    ]);
}
use Ossycodes\FriendlyCaptcha\Rules\FriendlyCaptcha;

public function submit(Request $request)
{
    $request->validate([
        'frc-captcha-solution' => ['required', app(FriendlyCaptcha::class)],
    ]);
}

测试

composer test

安全

如果您发现任何安全问题,请通过电子邮件 osaigbovoemmanuel1@gmail.com 联系我们,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。请参阅 许可证文件 以获取更多信息。

如何表达感谢?

请为我买一杯咖啡 https://www.paypal.com/paypalme/osaigbovoemmanuel,留下星标并关注我的 Twitter