sureshinde / laravel-auth-checker
Laravel Auth Checker 允许您记录用户认证、认证设备和锁定入侵。
v3.0.1
2024-02-20 13:29 UTC
Requires
- php: ^8.0
- laravel/framework: ^10.0
- sureshinde/mobile-desktop-detect: ^3.0
Requires (Dev)
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^9.6
- sureshinde/orchestra-database: ^7.0
This package is auto-updated.
Last update: 2024-09-20 14:36:13 UTC
README
Laravel Auth Checker 是一个插件,用于在用户认证时收集登录信息和使用的设备。它使得轻松捕获来自新 IP 地址或新设备的用户认证尝试和锁定变得简单。
要求
- Laravel 9 到 10
- PHP 8.0 到 8.2
Laravel 支持
安装
- 使用 Composer 安装它
composer require sureshinde/laravel-auth-checker
- 将
SureShinde\AuthChecker\Models\HasLoginsAndDevices
特性和SureShinde\AuthChecker\Interfaces\HasLoginsAndDevicesInterface
接口添加到您的 User 模型中。
use SureShinde\AuthChecker\Models\HasLoginsAndDevices; use SureShinde\AuthChecker\Interfaces\HasLoginsAndDevicesInterface; class User extends Authenticatable implements HasLoginsAndDevicesInterface { use Notifiable, HasLoginsAndDevices; }
- 发布迁移并迁移您的数据库
php artisan vendor:publish --tag=auth-checker php artisan migrate
注意:发布迁移是为了您在需要将迁移时间戳自定义以集成到现有项目中的情况下。
访问收集的数据
此库收集有关您的用户的登录数据和设备数据。
登录
// Your user model: $logins = $user->logins; // Output: [ [ 'ip_address' => '1.2.3.4', 'device_id' => 1, // ID of the used device 'type' => 'auth', 'device' => [ // See Devices ], 'created_at' => '2017-03-25 11:42:00', ], // ... and more ]
此外,您还可以直接按类型访问登录
$user->auths
返回成功的登录(通过Login::TYPE_LOGIN
)$user->fails
返回失败的登录(通过Login::TYPE_FAILED
)$user->lockouts
返回被锁定的登录(通过Login::TYPE_LOCKOUT
)
设备
// Your user model: $devices = $user->devices; // Outputs: [ [ 'platform' => 'OS X', 'platform_version' => '10_12_2', 'browser' => 'Chrome', 'browser_version' => '54', 'is_desktop' => true, 'is_mobile' => false, 'language' => 'fr-fr', 'login' => [ // See logins ], ], // ... and more ]
路线图
- 记录用户认证
- 收集 IP 地址
- 收集设备
- 获取用户的登录历史记录
- 获取设备历史记录
- 捕获失败的登录
- 捕获锁定登录
- 信任/不信任设备
- 当未知设备登录时通知用户
事件
有许多事件可用于向您的应用程序添加功能
LoginCreated
在用户认证时触发。DeviceCreated
在为用户创建新设备时触发。FailedAuth
在用户登录失败时触发。LockoutAuth
在用户的认证被锁定(尝试次数过多)时触发。
每个事件都将 Login
模型和 Device
模型传递给您的监听器。
实用用法
一旦将 HasLoginsAndDevices
特性添加到您的 User
模型中,它将扩展以下方法
logins()
返回所有登录auths()
返回所有成功的登录尝试fails()
返回所有失败的登录尝试lockouts()
返回所有锁定
返回的每个登录都与使用的 Device
模型相关联。
devices()
返回用户用于认证的所有设备。
测试
vendor/bin/phpunit
贡献者
许可证
MIT