xetaio/xetaravel-iptraceable
Xetaravel IpTraceable
A simple Laravel package that tracks the IP address of a user on login. Also handles the remember_me token via middleware.
Requirements
- PHP >= 8.3
- Laravel >= 13.0
Installation
composer require xetaio/xetaravel-iptraceable
Service Provider
Laravel auto-discovers the service provider. If you have disabled auto-discovery, register it manually in bootstrap/providers.php:
return [
// ...
Xetaio\IpTraceable\Providers\IpTraceableServiceProvider::class,
];
Middleware (remember me support)
The package ships with an optional middleware that updates the IP on requests authenticated via a remember me token. Register it in bootstrap/app.php after StartSession:
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
\Xetaio\IpTraceable\Http\Middleware\IpTraceable::class,
]);
})
Note: The middleware must be registered after
Illuminate\Session\Middleware\StartSession.
Configuration
Publish the config file:
php artisan vendor:publish --provider="Xetaio\IpTraceable\Providers\IpTraceableServiceProvider" --tag=config
Available options in config/iptraceable.php:
return [
'fields' => [
'last_login_ip' => 'last_login_ip', // Column name for the IP address
'last_login_date' => null, // Set a column name to enable, or null to disable
],
];
Database
Add the required columns to your users table:
$table->ipAddress('last_login_ip')->nullable();
$table->dateTime('last_login_date')->nullable(); // Optional — enable in config
How it works
| Trigger | Mechanism |
|---|---|
| Standard login | IpTraceableSubscriber listens to Illuminate\Auth\Events\Login and updates the IP automatically |
| Remember me token | IpTraceable middleware checks viaRemember() on each request and updates the IP if needed |
Testing
composer test
Contributing
Pull requests are welcome.