rembon / laravel-auditor
无需汗水的 Laravel Eloquent 模型审计工具
v2.0.0
2024-07-13 12:36 UTC
Requires
- yajra/laravel-datatables-oracle: ^10.3.1
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