Laravel 包,用于将访问者信息记录到数据库中。

4.2.0 2024-03-29 08:15 UTC

This package is auto-updated.

Last update: 2024-09-29 09:17:18 UTC


README

Total Downloads

介绍

VisitLog 是一个简单的 Laravel 5 包,可用于记录访问者信息并将其保存到数据库中。

功能

  • 除了基本的日志记录(如 IP、浏览器和操作系统)之外,它还可以记录位置信息。
  • 允许根据 IP 地址记录唯一和非唯一的访问。
  • 允许根据 IP 缓存访问。
  • 允许记录认证用户信息。
  • 提供默认的日志查看页面。
  • 为应用用户提供基本的 HTTP 认证。
  • 可以禁止用户通过其 IP 地址。

注意: VisitLog 无法检测来自某些匿名代理的同一用户/IP,因此无法区分。

截图

Main Window

注意:上图中显示的信息是假的。

要求

  • PHP >= 5.5.9
  • Laravel 5

安装

使用 composer 安装

composer require sarfraznawaz2005/visitlog

对于 Laravel < 5.5

将服务提供者添加到 config/app.php 文件中的 providers 部分

Sarfraznawaz2005\VisitLog\VisitLogServiceProvider::class,

将外观添加到 config/app.php 文件中的 aliases 部分

'VisitLog' => Sarfraznawaz2005\VisitLog\Facades\VisitLog::class,

运行 php artisan vendor:publish 以发布包的配置和迁移文件。现在你应该有了已发布的 config/visitlog.php 文件。它还会在 database/migrations 文件夹中发布迁移文件。

运行 php artisan migrate 以在您的数据库中创建 visitlogs 表。

配置选项

  • route : 访问日志可用的路由。
  • iptolocation : 默认情况下,仅记录 IP、浏览器和操作系统信息。但是,如果您将此选项设置为 true,它将通过 https://ipstack.com/ 服务记录位置信息。注意:您需要在那里创建账户并获得访问密钥,并在 visitlog 配置文件中指定。
  • cache : 如果 iptolocation 设置为 true,则可以使用此选项缓存结果,而不是每次都从 https://ipstack.com/ 请求位置信息。
  • unique : 如果设置为 true,则将仅根据 IP 地址记录唯一访问。如果设置为 false,则将记录来自同一 IP 的每个访问。
  • log_user : 如果设置为 true,它将还记录认证用户信息。
  • user_name_fields : 如果 log_user 设置为 true,则可以使用此选项指定数据库中用户表的用户名称字段。
  • visitlog_page : 如果设置为 true,则可以在 http//yourapp.com/your_route 上查看默认的日志查看页面,以查看所有日志。在这里 your_route 是上面的第一个选项。
  • http_authentication : 如果 visitlog_page 设置为 true,则可以使用此选项通过基本 HTTP 认证只向认证的应用程序用户显示访问日志页面,要求他们输入电子邮件和密码。

保存日志信息

要保存日志,只需调用 VisitLog 外观的 save 方法:VisitLog::save();

提示: 如果您只想保存基于 IP 的唯一日志,则登录或登录后页面是使用 save 方法的好地方,因为通常登录页面在用户认证后不会被再次访问。如果您还想要保存认证用户,则将 save 方法调用在登录后方法内部似乎是个好主意。

如果您已将 unique 选项设置为 false 并希望记录所有访问,那么在应用程序的基本控制器中调用 save 方法是一个好主意。

查看日志信息

如果配置选项 visitlog_page 设置为 true,您可以通过访问 http//yourapp.com/your_route 来查看所有访问日志。

注意:如果您不希望允许公开查看 visitlog 页面,请将选项 visitlog_page 设置为 false,那么 http//yourapp.com/your_route 将导致 404 错误。

在这种情况下,您仍然可以通过使用 VisitLog 门面的 all 方法在某些已认证的区域显示日志信息: $visitLogs = VisitLog::all(); 它将返回一个您可以迭代并显示在自身视图文件中的 Collection

致谢

许可证

此代码根据 MIT 许可证 发布。这意味着您可以几乎用它做任何事情,只要保留版权声明和随附的许可证文件即可。