kalizi / laravel-spyhole
Laravel 包用于记录和回放用户会话
v1.0-beta
2021-02-07 22:20 UTC
Requires
- php: ^7.3|^8.0
- ext-json: *
- ext-zlib: *
- illuminate/support: ^7.0|^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^6.9
- phpunit/php-code-coverage: ^8.0|^9.0
- phpunit/phpunit: ^8.0|^9.0
- squizlabs/php_codesniffer: ^3.0
README
Laravel Spyhole 是 Laravel 框架的用户会话记录器。Laravel Spyhole 是 JS 库 RRWeb(记录和回放网页)的包装。它允许以简单的方式将记录器嵌入到您的视图中并开始记录。
安装
您可以通过 composer 安装此包
composer require kalizi/laravel-spyhole
使用方法
安装后发布配置文件
php artisan vendor:publish --provider="Kalizi\LaravelSpyhole\LaravelSpyholeServiceProvider"
在配置文件中您可以设置
- 会话 ID 跟踪:这将使包跟踪 Laravel 内置会话的会话 ID,如果设置为 false,将为用户会话生成一个随机 UUID。
- 用户 ID 跟踪:这将使包跟踪与记录一起的用户 ID。
- 最小采样率:在发送之前从前端记录的最小记录数。(默认:50)
最后,要开始记录,只需将记录器视图嵌入到您想要记录的视图中。
@include("laravel-spyhole::embed_spyhole")
简要说明其工作原理
如前所述,spyhole 使用 RRWeb 作为其内部记录器。
在 resources/assets
文件夹中有已发布的资产,其中您可以找到 RRWeb 文件和 recording-handler.js
的构建版本,这是一个处理 RRWeb 初始化和记录发送的 JS 脚本。
记录被发布到名为 spyhole.store-entry
的路由(其 URL 为 /spyhole-api/record
)。记录可通过模型 Kalizi\LaravelSpyhole\Models\SessionRecording
访问,具有属性:ID、路径、记录(一个存储为 gzipped 和 base 64 编码的数组)和用户 ID。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 me@kalizi.dev 而不是使用问题跟踪器。
致谢
许可
MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。
Laravel 包模板
此包是使用 Laravel 包模板 生成的。