Laravel 用户登录记录扩展包
文档
自动化测试
功能
- 记录用户登录信息
- 分析登录记录
安装
依赖
- 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 协议》,转载必须注明作者和本文链接
去看了一下楼主的代码,这个的局限性有待提高,用户认证的模型固定化,建议动态化。 另外,标题与内容不符,因为我觉得你这个应该是活跃记录会比较符合题意。 登录其实laravel早就做好事件,只要配一个事件就好了。个人拙见。