biscolab/laravel-authlog

Laravel 的用户认证日志包

0.2.0 2020-03-15 15:26 UTC

This package is auto-updated.

Last update: 2024-09-16 02:10:52 UTC


README

Laravel 5, 6 和 7 的用户认证日志。此包允许您记录用户的认证并在必要时强制注销用户!

此包仍然不稳定。请报告任何错误和文档缺失,以便及时修复。.

感谢您的帮助。

系统需求

设置 session.driver

要使用此包,session.driver 的唯一允许值是 filedatabaseredis(目前)。

安装

您可以通过 composer 安装此包

$ composer require biscolab/laravel-authlog

Laravel 5.5(或更高版本)使用包自动发现,因此不需要您手动添加 Service Provider,但如果不使用自动发现,则必须在 config/app.php 中注册 AuthLogServiceProvider

'providers' => [
    ...
    Biscolab\LaravelAuthLog\AuthLogServiceProvider::class,
];

您可以使用 facade 来缩短代码。将 AuthLog 添加到您的别名中

'aliases' => [
    ...
    'AuthLog' => Biscolab\LaravelAuthLog\Facades\AuthLog::class,
];

发布包

使用以下 artisan 命令发布配置和迁移文件

$ php artisan vendor:publish --provider="Biscolab\LaravelAuthLog\AuthLogServiceProvider"

配置

编辑 config/authlog.php

记得运行 php artisan config:cache 命令

(*) 如果您正在使用自定义 users 表,请在运行 vendor:publish artisan 命令后、运行 migration artisan 命令前编辑 datatbase/migratons/2019_09_19_000000_create_authlog_table.php

AuthLoggable 特性添加到 User 模型中

App\User 中使用 Biscolab\LaravelAuthLog\Traits\AuthLoggable

<?php

namespace App;

// .....

use Biscolab\LaravelAuthLog\Traits\AuthLoggable;

class User extends Authenticatable
{
    use AuthLoggable;
    
    // other traits
    // ......

数据库

您的用户表 ID 必须是 unsignedIntegerunsignedBigInteger 类型之一。如果您有自定义用户表,请在运行 vendor:publish artisan 命令后编辑 datatbase/migratons/2019_09_19_000000_create_authlog_table.php

运行迁移

php artisan migrate

将创建 AuthLog 数据库表。

中间件

注册 `AuthLogMiddleware`

app/Http/Kernel.php 中注册 AuthLogMiddleware。此中间件将处理用户认证会话 ID。

protected $routeMiddleware = [
    ...
    'auth.log' =>  \Biscolab\LaravelAuthLog\Middleware\AuthLogMiddleware::class
];

AuthLogMiddleware 添加到路由中

Route::group(['middleware' => ['auth.log']], function() {

    // Your routes
});

处理已登录用户

Artisan 命令

要处理认证会话,请输入以下 artisan 命令

php artisan authlog:logged

将显示已登录用户的列表

+--------+------------------------------------------+-----------------------+---------------------+
| Log ID | Session ID                               | User                  | Logged @            |
+--------+------------------------------------------+-----------------------+---------------------+
| 604    | teq4LmVM4u4sdhFTKnGsKeWs3IBOLAIOXB1c4ioy | Roberto Belotti (#22) | 2019-09-25 22:56:33 |
+--------+------------------------------------------+-----------------------+---------------------+

Type Log ID to kill session. Type "exit" to quit:

现在您可以输入 exit 退出,或输入特定的 Log ID 强制用户注销,在这种情况下为 604

 > 604
 
Session "teq4LmVM4u4sdhFTKnGsKeWs3IBOLAIOXB1c4ioy" deleted. "Roberto Belotti" user logged out
No logged user, please type "exit" to quit