rembon/laravel-auditor

无需汗水的 Laravel Eloquent 模型审计工具

v2.0.0 2024-07-13 12:36 UTC

This package is auto-updated.

Last update: 2024-09-16 04:47:10 UTC


README

Laravel 审计包是 Laravel 应用程序的综合审计解决方案。它提供了一种跟踪对模型所做的更改的方法,使您能够维护详细的数据修改记录。

Laravel Auditor 是什么?

Laravel 审计包旨在无缝集成到您的 Laravel 应用程序中,提供一种强大且灵活的解决方案来审计您的 Eloquent 模型。它记录模型上的每一个更改,存储属性的老值和新值、负责更改的用户以及时间戳。这使得您可以维护详细的审计轨迹,并确保数据完整性和问责制。

该包高度可定制,允许您定义哪些模型和属性应该被审计,指定审计日志的存储位置,并配置如何查询和显示审计。此外,它支持广播审计事件,这在触发实时通知或其他针对数据更改采取的操作时可能很有用。

使用 Laravel Auditing,您可以提高应用程序的透明度和可靠性,使其更容易调试问题、理解用户行为,并符合法规要求。

关键功能

  • 跟踪用户行为
  • 跟踪用户看到的内容
  • 跟踪系统更改
  • 跟踪数据库

何时使用 Laravel Auditor?

  • 跟踪用户行为(责任)
  • 第三方集成(请求和响应)
  • 发现应用程序中的恶意活动
  • 调试目的

如何安装

步骤 1:使用 Composer 安装包

在您的终端中运行以下命令以安装包

composer require rembon/laravel-auditor

步骤 2:注册服务提供者

包成功安装后,您需要注册服务提供者并发布资产。将服务提供者添加到 config/app.php 中的 providers 数组

'providers' => [
    /*
    * Laravel Framework Service Providers...
    */
    ...

    /*
    * Package Service Providers...
    */
    \Rembon\LaravelAuditor\LaravelAuditorServiceProvider::class,

    /*
    * Application Service Providers...
    */
    ...
],

在您的 Event Service Provider 文件 app/Providers/EventServiceProvider.php 上使用这些库

<?php

...
use Illuminate\Mail\Events\MessageSent;
use Illuminate\Notifications\Events\NotificationSent;
use Rembon\LaravelAuditor\Listeners\AuthorizeMail;
use Rembon\LaravelAuditor\Listeners\AuthorizeNotification;

然后替换 app/Providers/EventServiceProvider.php 中的以下代码

protected $listen = [
    ...
    MessageSent::class => [
        AuthorizeMail::class,
    ],
    NotificationSent::class => [
        AuthorizeNotification::class,
    ],
];

步骤 3:发布配置文件

运行以下 Artisan 命令以发布包配置

php artisan vendor:publish --tag=config
php artisan vendor:publish --tag=migrations
php artisan vendor:publish --tag=public
php artisan vendor:publish --tag=views

步骤 4:运行迁移文件

然后运行迁移

php artisan migrate

如果您想迁移特定的迁移,请运行以下迁移

php artisan migrate --path=database/migrations/2050_06_14_042948_create_audits_table.php

php artisan migrate --path=database/migrations/2050_07_13_093233_create_performances_table.php

步骤 5:可选 命令

最后,运行以下可选命令

composer dump-autoload

如果您使用 uuid,只需检查以下文件 ..._create_audits_table.php

Schema::create('audits', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->nullable(); // modify this line into foreignUuid method, do not change the column name
    $table->string('url');
    $table->dateTime('datetime');
    $table->double('request_time');
    $table->string('route')->nullable();
    $table->json('abilities')->nullable();
    $table->json('emails')->nullable();
    $table->json('models')->nullable();
    $table->json('notifications')->nullable();
    $table->json('properties')->nullable();
    $table->timestamps();
});

如何使用?

简单,只需将我们的可审计特性放入您的模型中

<?php

use Rembon\LaravelAuditor\Traits\Auditable;

class User extends Authenticatable
{
    use ..., Auditable;
    
    ...
}

查看视图:/auditor

鸣谢