nickurt/laravel-stopforumspam

Laravel 10.x/11.x 的 StopForumSpam

1.9 2024-03-09 14:32 UTC

This package is auto-updated.

Last update: 2024-09-23 14:24:02 UTC


README

Build Status Total Downloads Latest Stable Version MIT Licensed

安装

使用 composer 安装此包

composer require nickurt/laravel-stopforumspam

复制 StopForumSpam 插件的配置文件

php artisan vendor:publish --provider="nickurt\StopForumSpam\ServiceProvider" --tag="config"

示例

验证规则 - IsSpamEmail

// FormRequest ...

public function rules()
{
    return [
        'email' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamEmail(20)]
    ];
}

// Manually ...

$validator = validator()->make(request()->all(), ['email' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamEmail(20)]]);

IsSpamEmail 验证规则有一个可选参数 frequency(默认 10),用于验证请求。

验证规则 - IsSpamIp

// FormRequest ...

public function rules()
{
    return [
        'ip' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamIp(20)]
    ];
}

// Manually ...

$validator = validator()->make(request()->all(), ['ip' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamIp(20)]]);

IsSpamIp 验证规则有一个可选参数 frequency(默认 10),用于验证请求。

验证规则 - IsSpamUsername

// FormRequest ...

public function rules()
{
    return [
        'username' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamUsername(20)]
    ];
}

// Manually ...

$validator = validator()->make(request()->all(), ['username' => ['required', new \nickurt\StopForumSpam\Rules\IsSpamUsername(20)]]);

IsSpamUsername 验证规则有一个可选参数 frequency(默认 10),用于验证请求。

手动使用 - IsSpamEmail

\StopForumSpam::setEmail('nickurt@users.noreply.github.com')->isSpamEmail();

手动使用 - IsSpamIp

\StopForumSpam::setIp('8.8.8.8')->isSpamIp();

手动使用 - IsSpamUsername

\StopForumSpam::setUsername('nickurt')->isSpamUsername();

事件

您可以监听 IsSpamEmailIsSpamIpIsSpamUsername 事件,例如,如果您想在应用程序中记录所有 IsSpam 请求。

IsSpamEmail 事件

当请求的电子邮件发送频率超过阈值时,将触发此事件 nickurt\StopForumSpam\Events\IsSpamEmail

IsSpamIp 事件

当请求的 IP 发送频率超过阈值时,将触发此事件 nickurt\StopForumSpam\Events\IsSpamIp

IsSpamUsername 事件

当请求的用户名发送频率超过阈值时,将触发此事件 nickurt\StopForumSpam\Events\IsSpamUsername

测试

composer test