Laravel 用户登录记录扩展包

Laravel 用户登录记录扩展包

编程
2020年3月26日
425 字约 2 分钟

文档

English 中文

自动化测试

Build Status Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status License

功能

  • 记录用户登录信息
  • 分析登录记录

安装

依赖

  • PHP 7.0+
  • Laravel 5.5+

通过 composer 安装:

composer require moecasts/laravel-user-login-log

如果你是用 Laravel 的版本 < 5.5,则需要手动将 provide 添加到 config/app.php providers 数组中

Moecasts\Laravel\UserLoginLog\UserLoginLogServiceProvider,

发布迁移文件:

php artisan vendor:publish --tag=laravel-user-login-log-migrations

如果你想修改默认配置,可以运行下列命令发布配置文件后修改:

php artisan vendor:publish --tag=laravel-user-login-log-config

数据表迁移:

php artisan migrate

配置

return [
    /**
     * 缓存时限 (seconds)
     */
    'expire' => 300,
];

用法

首先, 添加 LoginLoggable trait 到 authenticatable model.

use Moecasts\Laravel\UserLoginLog\Traits\LoginLoggable;

class User extends Authenticatable
{
    use LoginLoggable;
}

然后, 在 app/Http/Kernel.php 中添加中间件,注意:要放在 auth 中间件后面。

// app/Http/Kernel.php

class Kernel extends HttpKernel
{
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        // ...
        'login.log' => \Moecasts\Laravel\UserLoginLog\Middleware\UserLoginLogMiddleware::class,
    ];

    // ...
}

最后,在路由中使用:

Route::get('hello')->middleware(['auth', 'login.log']);

方法

获取用户登录记录

$user = new User;
$user->loginLogs;

创建用户登录记录

$user = new User;
$user->createLoginLog();

当用户重新登录时,创建登录记录

该方法依赖于缓存功能,当新登录时,会创建一个具有时限的缓存,下次请求路由时,来判断是否属于新登录。

实现由 logLogin 方法的 $seconds 参数控制(可留空),默认时限为配置 loginlogs.expire

This function is depet on cache, when your newly login, it will set a cache with for $seconds or default config ( loginlogs.expire ) seconds when $seconds is not set.

$user = new User;
// $user->logLogin($seconds = null)
$user->logLogin();

判断是否为新登录

$user = new User;
$user->isNewLogin();

Let’s enjoy coding!