https://github.com/datadome/fraud-sdk-symfony-package
Fraud Protection for PHP (Symphony)
https://github.com/datadome/fraud-sdk-symfony-package
fraud php sdk symphony
Last synced: 5 months ago
JSON representation
Fraud Protection for PHP (Symphony)
- Host: GitHub
- URL: https://github.com/datadome/fraud-sdk-symfony-package
- Owner: DataDome
- License: apache-2.0
- Created: 2023-09-21T15:37:32.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-02-27T08:21:45.000Z (8 months ago)
- Last Synced: 2025-04-01T05:51:14.008Z (6 months ago)
- Topics: fraud, php, sdk, symphony
- Language: PHP
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# DataDome Fraud Protection - PHP Symfony integration
Module for supporting DataDome Fraud Protection in Symfony PHP applications.
## Installation
This package can be installed through composer by running the following command:
```
composer require datadome/fraud-sdk-symfony
```Then proceed to run the below command to generate an autoloader containing the main class and options:
```
composer dump-autoload
```## Usage
Update the .env files with your preferred configuration.
Please note that the `DATADOME_FRAUD_API_KEY` is mandatory, while the other two settings are optional.```
DATADOME_FRAUD_API_KEY=my-datadome-client-side-sdk-key
DATADOME_TIMEOUT=1500
DATADOME_ENDPOINT='https://account-api.datadome.co'
```To make use of the DataDome SDK in your controller, first add the required imports:
```php
use DataDome\FraudSdkSymfony\Config\DataDomeOptions;
use DataDome\FraudSdkSymfony\DataDome;
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;
```Then proceed to create a private DataDome object as follows:
```php
$key = $_ENV['DATADOME_FRAUD_API_KEY'];
$timeout = $_ENV['DATADOME_TIMEOUT'];
$endpoint = $_ENV['DATADOME_ENDPOINT'];$options = new DataDomeOptions($key, $timeout, $endpoint);
$this->dataDome = new DataDome($options);
```Finally, invoke the validate and collect methods as required:
```php
if ($this->validateLogin("account_guid_to_check")) {
$loginEvent = new LoginEvent("account_guid_to_check", StatusType::Succeeded);
$loginResponse = $this->dataDome->validate($request, $loginEvent);if ($loginResponse != null && $loginResponse->action == ResponseAction::Allow->jsonSerialize()) {
// Valid login attempt
return new JsonResponse([true]);
} else {
// Business Logic here
// MFA
// Challenge
// Notification email
// Temporarily lock account
return new JsonResponse(["Login denied"]);
}
}
else {
$loginEvent = new LoginEvent("account_guid_to_check", StatusType::Failed);
$this->dataDome->collect($request, $loginEvent);
}
```