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
