jdenda-trox / laravel-auth-logger
Log user authentication actions in Laravel with added graylog connector.
Requires
- php: ^8.0
- hedii/laravel-gelf-logger: ^8.1
- illuminate/auth: ^9.0|^10.0
- illuminate/database: ^9.0|^10.0
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^7.0|^8.0
- timacdonald/log-fake: ^2.1
This package is auto-updated.
Last update: 2025-03-12 10:39:58 UTC
README
The laravel-auth-log
package will log all the default Laravel authentication events (Login, Attempting, Lockout, etc.) to your database and optionally to graylog instance. In the config file you can select the events that you would like to log. It will save the event name, email, user id, ip address and user agent. No other configurations are required. This package could be useful for tracking unwanted activity in your Laravel application.
Laravel Support
Version | Release |
---|---|
10.x | 1.1 |
9.x | 1.1 |
Installation
1. Install the package via composer
composer require jdenda-trox/laravel-auth-log
2. Publish the config file and migration
php artisan vendor:publish --provider="Label84\AuthLog\AuthLogServiceProvider" --tag="config" php artisan vendor:publish --provider="Label84\AuthLog\AuthLogServiceProvider" --tag="migrations"
3. Run migration
php artisan migrate
Usage
In the config file config/authlog.php
you can (un)comment the events that you'd like to log to your database.
// config/authlog.php return [ // ... 'events' => [ \Illuminate\Auth\Events\Attempting::class, // \Illuminate\Auth\Events\Authenticated::class, \Illuminate\Auth\Events\Failed::class, \Illuminate\Auth\Events\Lockout::class, \Illuminate\Auth\Events\Login::class, \Illuminate\Auth\Events\Logout::class, \Illuminate\Auth\Events\OtherDeviceLogout::class, \Illuminate\Auth\Events\PasswordReset::class, \Illuminate\Auth\Events\Registered::class, \Illuminate\Auth\Events\Verified::class, ], ];
In the same file you can can also change the database connection and table name.
Enable/disable logging
You can add the AUTH_LOG_ENABLED=
to your .env
file to enable/disable the logging to the database.
Config for Graylog will follow.
// .env AUTH_LOG_ENABLED=true
Table format example
id | event_name | user_id | ip_address | user_agent | context | created_at | |
---|---|---|---|---|---|---|---|
1 | Attempting | info@example.org | 127.0.0.1 | Mozilla/5.0 (Windows NT 10.0... | 2022-01-10 00:00:00 | ||
2 | Login | 1 | 127.0.0.1 | Mozilla/5.0 (Windows NT 10.0... | 2022-01-10 00:00:00 |
Tests
./vendor/bin/phpstan analyse ./vendor/bin/phpunit