allenkhoury / user-activity
跟踪用户活动并在线用户的仪表板。
Requires
README
此软件包提供对您的网站活跃用户的实时跟踪并记录其活动。它可以安装在9或10版本的任何Laravel项目上。
实时跟踪由websockets提供支持,因此您需要设置一个Pusher账户。或者,您也可以使用laravel-websocket。
要求
- PHP 8.1+
- Laravel 9|10
- Pusher(用于实时跟踪)
安装
通过composer安装此软件包
composer require allenkhoury/user-activity
安装完成后,它将自动被Laravel发现。
接下来,我们需要发布此软件包所需的数据:迁移、配置和资源。
- 迁移:记录用户活动所需的表。
- 配置:一组用于调整插件选项。
- 资源:这些是加载用户活动仪表板面板所必需的。
运行以下代码以发布所有必要的软件包数据
php artisan vendor:publish --tag=al-user-activity.package
然后,我们可以运行迁移以在数据库中创建软件包的表。
php artisan migrate
实时跟踪
此软件包使用websockets提供对您的网站活跃用户的实时跟踪。Pusher是该软件包首选的websockets提供者。
安装Pusher
要安装Pusher,您可以按照Laravel广播文档中的说明操作。
将跟踪脚本添加到布局文件中
安装Pusher后,您需要将以下代码添加到布局blade文件的底部,在scripts之后
@tracking_script
此自定义blade指令将在布局文件中注入一些脚本,以便Laravel Echo可以正确开始跟踪。
启用实时跟踪
最后,您需要通过设置以下环境变量来启用实时跟踪
AL_TRACKING_ENABLED=true
设置用户标识符
该软件包需要知道您的数据库中包含用户姓名的哪一列。默认情况下,软件包假定该列名为name
。但是,您可以通过设置软件包配置文件中的user_identifier选项来更改此设置。
活动日志
此软件包还可以记录网站上的用户活动。这有助于跟踪用户如何与您的网站互动以及识别潜在问题。
启用活动日志
要启用活动日志,您需要将以下环境变量设置为true
AL_ACTIVITY_LOG_ENABLED=true
配置
默认情况下,此软件包将跟踪以下HTTP请求
- POST
- PUT
- PATCH
- DELETE
但是,您可以通过编辑软件包发布的配置文件中的allowed_methods
选项来更改此配置。例如,要仅跟踪POST和PUT请求,您需要将配置更改为以下内容
'activity_log' => [ 'enabled' => env('AL_ACTIVITY_LOG_ENABLED', false), 'allowed_methods' => [ 'POST', 'PUT' ], ]
您可以在Laravel路由文档中查看支持的HTTP方法
异常
您可以通过将no-logging
中间件添加到路由中,排除一些路由的跟踪。
注意:此软件包将仅记录已认证用户的活动。访客不会受到跟踪。
仪表板
此软件包包含一个仪表板,允许您跟踪活跃用户并检查所有活动日志。
启用仪表板
仪表板默认启用。要禁用它,将以下环境变量设置为false
AL_DASHBOARD_ENABLED=false
仪表板URL
仪表板可在URL /al-user-activity
上访问。您可以通过在包配置文件中使用选项 url_prefix
添加前缀来更改URL。例如,要添加前缀admin (/admin/al-user-activity),您需要按以下方式更改 url_prefix
'dashboard' => [ 'enabled' => env('AL_DASHBOARD_ENABLED', true), 'url_prefix' => 'admin', 'extra_middlewares' => [], ],
仪表板访问
默认情况下,任何已验证用户都可以访问仪表板。要限制访问,例如仅限于管理员,您可以将自定义中间件别名添加到包配置文件中的选项 extra_middleware
。例如
'dashboard' => [ 'enabled' => env('AL_DASHBOARD_ENABLED', true), 'url_prefix' => 'admin', 'extra_middlewares' => ['admin-middleware-alias'], ],
注意:您可以添加所需数量的中间件。
一般注意事项
该包将使用在 config('auth.provider.users.model')
中设置的模型作为用户模型。
仪表板UI是使用免费的模板 Sneat(由 ThemeSelection 提供)构建的。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。