jdenda-trox/laravel-auth-logger

Log user authentication actions in Laravel with added graylog connector.

dev-master 2023-12-12 07:26 UTC

This package is auto-updated.

Last update: 2024-04-12 08:05:44 UTC


README

Latest Stable Version MIT Licensed Quality Score Total Downloads GitHub Workflow Status

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 email 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

License

MIT