Activity log
This is an open source laravel project that you can use to monitor whatever post activity a user create on your project (The most reputable Laravel package provided for detecting user agent is Agent developed by Jens Segers and its the one I will use. All the information you need to know about user are accessible by usingAgent)
it saves the user
- device
- platform
- browser
- IP address
- user auth id
- user auth email
- user activity
in your laravel project run:composer require jenssegers/agent
Then find the config/app.php and then findproviders array add:Jenssegers\Agent\AgentServiceProvider::class,
In the same config/app.php file find thealiases array and add:'Agent' => Jenssegers\Agent\Facades\Agent::class,
then run:php artisan make:model ActivityLog -m
this will create 2 files
- ActivityLog.php in your app folder
- activity log migration file in your database/migration folder (something like
2020_06_21_151755_create_activity_logs_table
)open yourActivityLog.php and add the following codes inside the class {...}
protected $fillable = [
'device',
'platform',
'browser',
'ip_address',
'user_id',
'user_email',
'user_activity'
];
open your migration file in2 above and add the following lines inside the schema function after$table->id();
$table->string('device'); $table->string('platform'); $table->string('browser'); $table->string('ip_address'); $table->string('user_id')->nullable(); $table->string('user_email'); $table->string('user_activity');
if you don't have an authentication scaffold already in your project run:php artisan make:auth
for laravel 5.8 and below
for laravel 6.0 and above run:composer require laravel/ui
php artisan ui vue --auth
create a folder called "Services" in your app folder and create a file called ActivityService.php (app\services\ActivityServices.php), open your ActivityService.php file and add the following code:
<?php
namespace App\Services;
use App\ActivityLog;
use Jenssegers\Agent\Agent;
class ActivityService
{protected $activityLog;
public function __construct(
ActivityLog $activityLog
) {$this->activityLog = $activityLog;
}
public function enterActivity($user_activity,$email){ $agent = new Agent(); $platform = $agent->platform(); // Ubuntu, Windows, OS X, ... $browser = $agent->browser(); // Chrome, IE, Safari, Firefox, ... $this->activityLog->create([ 'platform' => $agent->version($platform), 'browser' => $agent->version($browser), 'device' => $agent->device(), 'ip_address' => \Request::ip(), 'user_id' => null, 'user_email' => $email, 'user_activity' => $user_activity ]);}
}
run migration in order to create the activity log table in your DB
open RegisterController.php and call the Activity service:use App\Services\ActivityService;
in yourRegisterController class addprotected $activityService;
in your __construct() method addActivityService $activityService
and in the __construct() function add$this->activityService = $activityService;
your __construct() method code should look likeprotected $activityService;
public function __construct(ActivityService $activityService)
{$this->activityService = $activityService;
$this->middleware('guest');
}
then add the below code in your create function$user_activity = 'user attempted to login'
;$email = $data['email'];
$this->activityService->enterActivity($user_activity,$email);
try to register, once you have registered, check the activity log table you will see all the details of the person
including his IP address, the$user_activity can be changed to whatever you like depending on the user activity, The service can be called anywhere in your controller, just remember to include the$user_activity and $email
below is the github link to the repo, you can fork it if you wish:
Activity log
This is an open source laravel project that you can use to monitor whatever post activity a user create on your project (The most reputable Laravel package provided for detecting user agent is Agent developed by Jens Segers and its the one I will use. All the information you need to know about user are accessible by usingAgent)
it saves the user
- device
- platform
- browser
- IP address
- user auth id
- user auth email
- user activity
in your laravel project run:composer require jenssegers/agent
Then find the config/app.php and then findproviders array add:Jenssegers\Agent\AgentServiceProvider::class,
In the same config/app.php file find thealiases array and add:'Agent' => Jenssegers\Agent\Facades\Agent::class,
then runphp artisan make:model ActivityLog -m
this will create 2 files
- ActivityLog.php in your app folder
- activity log migration file in your database/migration folder (something like
2020_06_21_151755_create_activity_logs_table
)open yourActivityLog.php and add the following codes inside…
hope this helps, I can be reached viadamilola.yakubu@yahoo.com
twitter:https://twitter.com/dammydev
Thanks
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse