XetaIO / Xetaravel-IpTraceable by Xety

A simple package that update an IP field when the user login into the application.
2,506
0
2
Package Data
Maintainer Username: Xety
Maintainer Contact: zoro.fmt@gmail.com (Xety)
Package Create Date: 2017-05-24
Package Last Update: 2024-06-18
Home Page: https://xetaravel.xeta.io
Language: PHP
License: MIT
Last Refreshed: 2024-12-19 03:24:42
Package Statistics
Total Downloads: 2,506
Monthly Downloads: 15
Daily Downloads: 0
Total Stars: 0
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

|Stable Version|Downloads|Laravel|License| |:-------:|:------:|:-------:|:-------:| |Latest Stable Version|Total Downloads|Laravel 5.6|License|

A simple package that update an IP field when the user login into the application. Also work with the remember_me token.

Requirement

PHP

Installation

composer require xetaio/xetaravel-iptraceable

ServiceProviders

Import the IpTraceableServiceProvider in your config/app.php:

'providers' => [
  //...
  Xetaio\IpTraceable\Providers\IpTraceableServiceProvider::class,
  //...
]

Middleware

Import the IpTraceable middleware in your app/Http/Kernel.php in the web part:

protected $middlewareGroups = [
   'web' => [
       //...
       \Illuminate\Session\Middleware\StartSession::class,
       \Xetaio\IpTraceable\Http\Middleware\IpTraceable::class,
       //...
   ],
   //...
];

Note : It's very important to import the middleware after the Illuminate\Session\Middleware\StartSession middleware, since this package use the session.

Config file

Publish the package config file to your application :

php artisan vendor:publish --provider="Xetaio\IpTraceable\Providers\IpTraceableServiceProvider" --tag=config

Database

Create 2 fields last_login_ip and last_login_date (optional) in your database :

// Must be nullable
$table->ipAddress('last_login_ip')->nullable();
$table->dateTime('last_login_date')->nullable(); // (optional) Disabled by default

The fields name can be changed in the configuration file.

Contribute

If you want to contribute to the project by adding new features or just fix a bug, feel free to do a PR.