jeffersonsimaogoncalves/laravel-device-tracking

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

9.0.1 2022-05-05 22:36 UTC

This package is auto-updated.

Last update: 2024-09-06 03:48:58 UTC


README

Latest Version on Packagist

Total Downloads

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

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

您还可以检测可能的设备劫持。

安装

您可以通过composer安装此包

composer require jeffersonsimaogoncalves/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认证,可以在app/Http/Kernel.php中添加中间件 IvanoMatteo\LaravelDeviceTracking\Http\Middleware\DeviceTrackerMiddlewareweb 组的末尾。

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

以下事件可以被触发

  • DeviceCreated

    当检测到新设备并存储时

  • DeviceUpdated

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

  • DeviceHijacked

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

  • UserSeenFromNewDevice

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

  • UserSeenFromUnverifiedDevice

    当检测到用户在设备上,但设备尚未标记为验证时

变更日志

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

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全性

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

致谢

许可

MIT许可(MIT)。请参阅 许可文件 了解更多信息。