lab404/laravel-auth-checker

Laravel Auth Checker 允许您记录用户身份验证、验证过的设备和锁定入侵。

3.0.0 2024-05-19 22:15 UTC

This package is auto-updated.

Last update: 2024-09-19 22:56:39 UTC


README

Build Status Scrutinizer Code Quality

Laravel Auth Checker 是一个插件,用于在用户身份验证时收集登录信息和使用的设备。它使您能够轻松地捕获来自新IP地址或新设备的用户身份验证尝试和锁定。

Example logins table

要求

安装

  • 需要以下包: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