lab404 / laravel-auth-checker
Laravel Auth Checker 允许您记录用户身份验证、验证过的设备和锁定入侵。
3.0.0
2024-05-19 22:15 UTC
Requires
- php: ^8.2
- jenssegers/agent: ^2.6
- laravel/framework: ^11.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
README
Laravel Auth Checker 是一个插件,用于在用户身份验证时收集登录信息和使用的设备。它使您能够轻松地捕获来自新IP地址或新设备的用户身份验证尝试和锁定。
要求
安装
- 需要以下包:
composer require lab404/laravel-auth-checker
- 发布迁移文件:
php artisan vendor:publish --tag=auth-checker
- 迁移您的数据库:
php artisan migrate
- 配置您的
Authenticatable
模型(见下文)
使用
此库收集有关您的用户登录数据和设备数据的登录数据。
可验证模型
您的 Authenticatable
模型(通常是 User
)必须实现 HasLoginsAndDevicesInterface
接口。
提供 HasLoginsAndDevices
特性以提供工作默认实现。
use Lab404\AuthChecker\Models\HasLoginsAndDevices; use Lab404\AuthChecker\Interfaces\HasLoginsAndDevicesInterface; class User extends Authenticatable implements HasLoginsAndDevicesInterface { // ... use HasLoginsAndDevices; }
配置完成后,您可以访问以下方法
logins()
返回所有登录auths()
返回所有成功的登录尝试fails()
返回所有失败的登录尝试lockouts()
返回所有锁定
返回的每个登录都与使用的 Device
模型相关联
devices()
返回用户用于身份验证的所有设备。
登录
调用 $user->logins
输出
[ [ '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', ], // ... ]
此外,您可以直接通过类型访问登录
$user->auths
,返回成功的登录(通过Login::TYPE_LOGIN
)$user->fails
,返回失败的登录(通过Login::TYPE_FAILED
)$user->lockouts
,返回被锁定的登录(通过Login::TYPE_LOCKOUT
)
设备
调用 $user->devices
输出
[ [ '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 ], ], // ... ]
事件
有许多事件可用于向您的应用程序添加功能
LoginCreated
在用户认证时触发。DeviceCreated
在为用户创建新设备时触发。FailedAuth
在用户登录失败时触发。LockoutAuth
在用户认证被锁定时触发(尝试次数过多)。
每个事件都向您的监听器传递一个 Login
模型和 Device
模型。
测试
vendor/bin/phpunit
贡献者
许可证
MIT