locardi/php-sdk

There is no license information available for the latest version (v0.2.0) of this package.

A SDK for Locardi forensics

v0.2.0 2018-09-10 09:38 UTC

This package is not auto-updated.

Last update: 2024-04-24 09:40:43 UTC


README

Installation

composer require locardi/php-sdk "dev-master"

Usage

use Locardi\PhpSdk\Authentication\JwtAuthentication\TokenStorage\FileTokenStorage;
use Locardi\PhpSdk\LocardiClient;
use Locardi\PhpSdk\Api\OrganizationUserRequestApi;

$client = new LocardiClient(array(
    'debug' => true,
    'username' => 'myusername',
    'password' => 'mypassword',
    'endpoint' => '', // this is optional and overrides the API endpoing (used for sandbox)
    'tokenStorage' => new FileTokenStorage(__DIR__),
    'timeout' => 10, // OPTIONAL number of senconds before curl timeout (default is 30 seconds) 
));

$client->send(array(
    'organization_user_request' => array(
        // this is the type of the page that the user has opened (html_page,login,login_failed,download)
        'request_type' => OrganizationUserRequestApi::REQUEST_TYPE_HTML_PAGE,
        // the IP Address of the user
        'ip_address' => '8.8.8.8',
        // the HTTP method used by the user (GET,POST,OPTION,PUT,DELETE)
        'http_method' => 'GET',
        // the timestamp when the user request was generated
        'timestamp' => date('c'),
        // the user agent used by the user
        'user_agent' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',
        // the full address requested by the user (including query string, anchors etc)
        'uri' => 'https://www.getlocardi.com/?param1=value1&param2=value2',
        // the organization in which the user is
        'organization' => array(
            'id' => '123', // note that this is a string
            'name' => 'Organization1',
        ),
        // some details on the user
        'user' => array(
            'id' => '123', // note that this is a string
            'name' => 'User1', // you can fill this field with the username,email or any other unique id
            // this is the user type and represents whether the user is internal (like an admin/editor account) or external (like a normal user)
            'type' => OrganizationUserRequestApi::USER_TYPE_INTERNAL,
            // the timezone where the user lives
            'timezone' => 'Europe/London',
        ),
    ),
));

Request Types

You can send requests with different types base on what you need to track:

  • OrganizationUserRequestApi::REQUEST_TYPE_HTML_PAGE when the user visits a normal web page
  • OrganizationUserRequestApi::REQUEST_TYPE_LOGIN when the user is attempting the login
  • OrganizationUserRequestApi::REQUEST_TYPE_LOGIN_FAILED when the login attempt has failed for any reason
  • OrganizationUserRequestApi::REQUEST_TYPE_DOWNLOAD when the user has downloaded a file

User types

You may have the need to differentiate between your own users' accounts (such as admin accounts etc) and your clients' accounts.

  • OrganizationUserRequestApi::USER_TYPE_INTERNAL these are users that you consider internal to your organization (i.e. admins, editors, etc)
  • OrganizationUserRequestApi::USER_TYPE_EXTERNAL these are users that are using your service (actual clients that you want to track)

Token Storage

The Locardi API implements a JSON Web Token authentication system.

The SDK requires a way to store the JSON Web Token, for this reason we provide a TokenStorageInterface that you can use to save the token in any storage system.

We provide a simple FileTokenStorage class that saves the token on the filesystem but you can write your own adapter simply using the TokenStorageInterface.