laravel实现登录时监听事件,添加登录用户的记录方法


Posted in PHP onSeptember 30, 2019

一、执行,php artisan make:event AdminLoginEvent 命令,Laravel目录\app\Events会生成AdminLoginEvent.php文件,

二、我们先在\app\Providers目录下找到EventServiceProvider.php文件,该文件内有一个Events-Listeners数组来保存事件和监听者的映射关系:

protected $listen = [
  'App\Events\AdminLoginEvent' => [
    'App\Listeners\AdminLogListener',
  ],
];

三、执行,php artisan event:generate 命令,Laravel\app\Listeners目录下会生成AdminLogListener.php文件在文件里写一些业务:

<?php

namespace App\Listeners;

use App\Business\AdminLogBiz;
use Illuminate\Contracts\Queue\ShouldQueue;
use Common;

class AdminLogListener implements ShouldQueue
{
  private $adminLogBiz;

  /**
   * Create the event listener.
   * UserLogListener constructor.
   * @param AdminLogBiz $adminLogBiz
   */
  public function __construct(AdminLogBiz $adminLogBiz)
  {
    $this->adminLogBiz = $adminLogBiz;
  }

  /**
   * Handle the event.
   *
   * @param object $event
   * @return void
   */
  public function handle($event)
  {
    $admin = $event->admin;
    $data = [];
    $data['admin_id'] = $admin->id;
    $data['admin_username'] = $admin->truename;
    $data['remote_ip'] = Common::getClientIP();
    $data['location'] = isset($ipInfo['city']) ? $ipInfo['city'] : '';
    $userName = empty($admin->truename) ? $admin->mobile : $admin->truename;
    $data['log_code'] = 'login';
    $data['log_content'] = $userName . '用户登陆';
    $this->adminLogBiz->add($data);
  }
}

四、触发这个事件,在用户登录的地方:

use App\Events\AdminLoginEvent;
/**
 * 登录
 *
 * @param Request $request
 * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
 */
public function signin(Request $request)
{
  $username = $request->username;
  $password = $request->password;
  if (Auth::guard('admin')->attempt(array('username' => $username, 'password' => $password))) {
    if (Auth::guard('admin')->user()->status) {
      $this->logout($request);
      return redirect('/admin/login')->with('error', '账号已被锁定');
    } else {
      event(new AdminLoginEvent(Auth::guard('admin')->user()));
      return redirect('admin/index');
    }
  } else {
    return redirect('admin/login')->with('error', '账户或密码错误');
  }
}

这样就完成了整个用户登录的监听事件,当用户登录的时候表就会添加用户登录的信息。

以上这篇laravel实现登录时监听事件,添加登录用户的记录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php桌面中心(三) 修改数据库
Mar 11 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
PHP积分兑换接口实例
Feb 09 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
基于Laravel实现的用户动态模块开发
Sep 21 PHP
Laravel框架查询构造器简单示例
May 08 PHP
php依赖注入知识点详解
Sep 23 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
php7下的filesize函数
Sep 30 #PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 #PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
Sep 30 #PHP
Laravel框架表单验证操作实例分析
Sep 30 #PHP
Laravel 自带的Auth验证登录方法
Sep 30 #PHP
laravel 使用auth编写登录的方法
Sep 30 #PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 #PHP
You might like
PHP系统流量分析的程序
2006/10/09 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
英语师范专业毕业生自荐信
2013/09/21 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
本科生自荐信
2014/06/18 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
节约用电倡议书
2015/04/28 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
Java实现学生管理系统(IO版)
2022/02/24 Java/Android