datadome/fraud-sdk-laravel

DataDome 欺诈防护针对 Laravel PHP 应用程序

1.0.0 2024-02-14 14:12 UTC

This package is not auto-updated.

Last update: 2024-09-26 18:49:33 UTC


README

支持 DataDome 欺诈防护的 Laravel PHP 应用程序的模块。

安装

可以通过运行以下命令通过 composer 安装此包:

composer require datadome/fraud-sdk-laravel

然后运行以下命令以生成包含主类和选项的自动加载器:

composer dump-autoload

当上述过程完成后,将 DataDomeServiceProvider 添加到位于 config/app.php 中的 ServiceProviders 列表中。然后运行 php artisan vendor:publish 以发布 DataDomeServiceProvider。这应该会将所需的 datadome.php 配置文件发布到 config 文件夹。

用法

使用您首选的配置更新 .env 文件。请注意,DATADOME_FRAUD_API_KEY 是必填项,而其他两个设置是可选的。

DATADOME_FRAUD_API_KEY=my-datadome-fraud-api-key
DATADOME_TIMEOUT=1500
DATADOME_ENDPOINT='https://account-api.datadome.co'

要在控制器中使用 DataDome SDK,首先添加所需的导入:

use DataDome\FraudSdkSymfony\Models\Address;
use DataDome\FraudSdkSymfony\Models\LoginEvent;
use DataDome\FraudSdkSymfony\Models\StatusType;
use DataDome\FraudSdkSymfony\Models\RegistrationEvent;
use DataDome\FraudSdkSymfony\Models\Session;
use DataDome\FraudSdkSymfony\Models\User;
use DataDome\FraudSdkSymfony\Models\ResponseAction;

然后,根据需要调用 validate 和 collect 方法。

if ($this->validateLogin("account_guid_to_check")) {
    $loginEvent = new LoginEvent("account_guid_to_check", StatusType::Succeeded);
    $loginResponse = app("DataDome")->validate($request, $loginEvent);

    if ($loginResponse != null && $loginResponse->action == ResponseAction::Allow->jsonSerialize()) {
        // Valid login attempt
        return response()->json([true]);
    } else {
        // Business Logic here
        // MFA
        // Challenge
        // Notification email
        // Temporarily lock account
        return response()->json(["Login denied"]);
    }
}
else {
    $loginEvent = new LoginEvent("account_guid_to_check", StatusType::Failed);
    app("DataDome")->collect($request, $loginEvent);
}

return response()->json([false]);