A Middleware for PHP Laravel (> 5.1) to automatically capture incoming HTTP traffic.
Via Composer
$ composer require moesif/moesif-laravel
or add 'moesif/moesif-laravel' to your composer.json file accordingly.
// within config/app.php
'providers' => [
//
Moesif\Middleware\MoesifLaravelServiceProvider::class,
];
If website root is your API, add to the root level:
// within App/Http/Kernel.php
protected $middleware = [
//
\Moesif\Middleware\MoesifLaravel::class,
];
If API under specific route group, add to your route group:
// within App/Http/Kernel.php
protected $middlewareGroups = [
//
'api' => [
//
\Moesif\Middleware\MoesifLaravel::class,
],
];
To track only certain routes, use route specific middleware setup.
$ php artisan vendor:publish --provider="Moesif\Middleware\MoesifLaravelServiceProvider"
Edit config/moesif.php
file.
// within config/moesif.php
return [
//
'applicationId' => 'YOUR APPLICATION ID',
];
You can find your Application Id from Moesif Dashboard -> Top Right Menu -> App Setup
For other configuration options, see below.
You can define Moesif configuration options in the config/moesif.php
file. Some of these fields are functions.
Type: String
Required, a string that identifies your application.
Type: ($request, $response) => String
Optional, a function that takes a $request and $response and return a string for userId. Moesif automatically obtains end userId via $request->user()['id'], In case you use a non standard way of injecting user into $request or want to override userId, you can do so with identifyUserId.
// within config/moesif.php
$identifyUserId = function($request, $response) {
// $user = $request->user();
// return $user['id'];
return 'end_user_id';
};
return [
//
'identifyUserId' => $identifyUserId
];
Type: ($request, $response) => String
Optional, a function that takes a $request and $response and return a string for sessionId. Moesif automatically sessionizes by processing at your data, but you can override this via identifySessionId if you're not happy with the results.
Type: String
Optional, a string to specifiy an API Version such as 1.0.1, allowing easier filters.
Type: $headers => $headers
Optional, a function that takes a $headers, which is an associative array, and
returns an associative array with your sensitive headers removed/masked.
// within config/moesif.php
$maskRequestHeaders = function($headers) {
$headers['password'] = '****';
return $headers;
};
return [
//
'maskRequestHeaders' => $maskRequestHeaders
];
Type: $body => $body
Optional, a function that takes a $body, which is an associative array representation of JSON, and
returns an associative array with any information removed.
// within config/moesif.php
$maskRequestBody = function($body) {
// remove any sensitive information.
return $body;
};
return [
//
'maskRequestBody' => $maskRequestBody
];
Type: $headers => $headers
Optional, same as above, but for Responses.
Type: $body => $body
Optional, same as above, but for Responses.
Type: Boolean
Optional, If true, will print debug messages using Illuminate\Support\Facades\Log
- Parts of queuing & sending data via forked non-blocking process is based on Mixpanel's PHP client code which is open sourced under Apache License, Version 2.0.
To view more more documentation on integration options, please visit the Integration Options Documentation.