ibf / laravel-device-tracking
一个允许跟踪不同设备使用的库
Requires
- php: >=8.0
- hisorange/browser-detect: ^4.5
Requires (Dev)
- orchestra/testbench: ^7.15
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-21 18:52:05 UTC
README
此包实现了类似于“谷歌”的设备检测。
您可以检测用户是否正在使用新设备,并管理用户与设备之间的验证状态。
您还可以检测可能的设备篡改。
安装
您可以通过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\DeviceTrackerMiddleware 到 web 组的末尾。
这样,设备也将被用于检查随后的登录请求。 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)。请参阅许可证文件 获取更多信息。