arcaptcha/arcaptcha-laravel

ArCaptcha 的 Laravel 扩展包

1.0.4 2024-07-20 13:47 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:37:59 UTC


README

ArCaptcha

Laravel ArCaptcha 扩展包

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Laravel ArCaptcha 扩展包,支持 PHP 7.3+

对于 PHP 集成,你可以使用 mohammadv184/arcaptcha 扩展包。

内容列表

安装

您可以通过 composer 安装此包。

composer require arcaptcha/arcaptcha-laravel

Laravel 5.5 (或更高版本) 使用包自动发现,因此不需要您手动添加服务提供者,但如果您不使用自动发现,则必须在 config/app.php 中注册 ArCaptchaServiceProvider。

'providers' => [
    ...
    Mohammadv184\ArCaptcha\Laravel\ArCaptchaServiceProvider::class,
];

您可以使用外观来缩短代码。将 ArCaptcha 添加到您的别名中

'aliases' => [
    ...
    'ArCaptcha' => Mohammadv184\ArCaptcha\Laravel\Facade\ArCaptcha::class,
];

配置

发布包

使用以下 artisan 命令创建 config/arcaptcha.php 配置文件

php artisan vendor:publish --provider="Mohammadv184\ArCaptcha\Laravel\ArCaptchaServiceProvider"

设置环境

打开 .env 文件并设置 ARCAPTCHA_SITE_KEYARCAPTCHA_SECRET_KEY

# in your .env file
ARCAPTCHA_SITE_KEY=YOUR_API_SITE_KEY
ARCAPTCHA_SECRET_KEY=YOUR_API_SECRET_KEY

# Optional: Default returned value from verify function
# when there is an Network or any other unexpected issue.
ARCAPTCHA_VERIFY_EXCEPTION_VALUE=true

自定义错误消息

在开始之前,请将验证消息添加到 resources/lang/[LANG]/validation.php 文件中

return [
    ...
    'arcaptcha' => 'Hey!!! :attribute is wrong!',
];

如何使用

如何在 Laravel 中使用 ArCaptcha。

在 Blade 中嵌入脚本

</head> 标签关闭之前插入 @arcaptchaScript blade 指令。

您也可以使用 ArCaptcha::getScript()

<!DOCTYPE html>
<html>
  <head>
    ... @arcaptchaScript
  </head>
</html>

表单设置

之后,您必须在包含您想要使用 arcaptcha-token 字段的表单内插入 @arcaptchaWidget blade 指令。

您也可以使用 ArCaptcha::getWidget()

注意:您可以将小部件选项传递给 getWidget 函数或 arcaptchaWidget 指令,如下所示:@arcaptchaWidget(['lang'=>'en'])

要查看小部件上的可用选项,请参阅此处

<form>
  @csrf ... @arcaptchaWidget
  <!-- OR -->
  {!! ArCaptcha::getWidget() !!}
  <input type="submit" />
</form>

验证提交数据

arcaptcha 添加到您的规则中

$validator = Validator::make(request()->all(), [
        ...
        'arcaptcha-token' => 'arcaptcha',
    ]);

    // check if validator fails
    if($validator->fails()) {
        ...
        $errors = $validator->errors();
    }

隐藏模式示例

只需尝试将 sizecallback 选项传递给 getWidget 函数。请确保在全局范围内定义回调函数

<form>
  {!! ArCaptcha::getWidget([ 'size'=>'invisible','callback'=>'callback']) !!}
  <input type="submit" />

  <script>
    function callback(token) {
      // Challenge is solved! Just submit the form!
    }
  </script>
</form>

致谢

许可协议

MIT 许可协议 (MIT)。有关更多信息,请参阅许可文件