Laravel 用户登录记录扩展包

文档

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!

原文:https://www.tore.moe/post/laravel-user-log...

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

去看了一下楼主的代码,这个的局限性有待提高,用户认证的模型固定化,建议动态化。 另外,标题与内容不符,因为我觉得你这个应该是活跃记录会比较符合题意。 登录其实laravel早就做好事件,只要配一个事件就好了。个人拙见。

4年前 评论
Clusteramaryllis (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!