ibf/laravel-device-tracking

一个允许跟踪不同设备使用的库

dev-master 2024-01-21 17:32 UTC

This package is auto-updated.

Last update: 2024-09-21 18:52:05 UTC


README

Latest Version on Packagist

Total Downloads

此包实现了类似于“谷歌”的设备检测。

您可以检测用户是否正在使用新设备,并管理用户与设备之间的验证状态。

您还可以检测可能的设备篡改。

安装

您可以通过composer安装此包

composer require ivanomatteo/laravel-device-tracking

php artisan migrate

发布配置文件

php artisan vendor:publish --provider "IvanoMatteo\LaravelDeviceTracking\LaravelDeviceTrackingServiceProvider" --tag config

使用方法

// add the trait to your user model
class User{
    //...
    use IvanoMatteo\LaravelDeviceTracking\Traits\UseDevices;
    //...
}


// call on login or when you want update and check the device informations
// by default this function is called when the Login event is fired 
// only with the "web" auth guard
// if you want you can disable the detect_on_login option in the config file
$device = \DeviceTracker::detectFindAndUpdate();


// flag as verified for the current user
\DeviceTracker::flagCurrentAsVerified();

// flag as verified for a specific user
\DeviceTracker::flagAsVerified($device, $user_id);

// flag as verified for a specific user by device uuid
\DeviceTracker::flagAsVerifiedByUuid($device_uuid, $user_id);

如果您正在使用Session Authentication,可以在app/Http/Kernel.php中添加中间件 IvanoMatteo\LaravelDeviceTracking\Http\Middleware\DeviceTrackerMiddlewareweb 组的末尾。

这样,设备也将被用于检查随后的登录请求。 DeviceTrackerMiddleware 将将md5(request()->ip() . $device_uuid . $user_agent)存储在会话中,因此只有在哈希值不匹配时才会重新执行检测。

以下事件可以触发

  • DeviceCreated

    当检测到并存储新设备时

  • DeviceUpdated

    当设备的一些信息发生变化时

  • DeviceHijacked

    当关键设备信息发生变化时。您还可以定义自定义的 DeviceHijackingDetector。在此事件之后,设备将被更新,下次不会触发DeviceHijacked,但设备将具有带有上次DeviceHijacked事件时间戳的 device_hijacked_at 字段。

  • UserSeenFromNewDevice

    当检测到用户首次在设备上时

  • UserSeenFromUnverifiedDevice

    当检测到用户不是首次在设备上,且设备未被标记为已验证时

变更日志

请参阅CHANGELOG 了解最近更改的详细信息。

贡献

请参阅CONTRIBUTING 了解详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 ivanomatteo@gmail.com 而不是使用问题跟踪器。

鸣谢

许可

MIT许可证(MIT)。请参阅许可证文件 获取更多信息。