• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    laravel实现登录时监听事件,添加登录用户的记录方法

    一、执行,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实现登录时监听事件,添加登录用户的记录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • laravel 5.3 单用户登录简单实现方法
    • Laravel 自动生成验证的实例讲解:login / logout
    上一篇:php7下的filesize函数
    下一篇:Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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