allenkhoury/user-activity

此软件包最新版本(v1.0.1)没有可用的许可证信息。

跟踪用户活动并在线用户的仪表板。

安装: 6

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

语言:JavaScript

v1.0.1 2023-08-28 18:54 UTC

This package is auto-updated.

Last update: 2024-09-28 21:26:16 UTC


README

此软件包提供对您的网站活跃用户的实时跟踪并记录其活动。它可以安装在9或10版本的任何Laravel项目上。

实时跟踪由websockets提供支持,因此您需要设置一个Pusher账户。或者,您也可以使用laravel-websocket。

Dashboard

要求

  • 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)。有关更多信息,请参阅许可证文件