校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > laravel實現登錄時監聽事件,添加登錄用戶的記錄方法

laravel實現登錄時監聽事件,添加登錄用戶的記錄方法

熱門標簽:銅川電話機器人價格 江蘇電商外呼系統運營商 智能電話機器人好公司門薩維 聊城電話外呼系統公司 沛縣400電話辦理 青白江地圖標注 辦理重慶400電話 德陽中江如何申請400開頭電話 AI電話機器人OEM貼牌

一、執行,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

標簽:赤峰 濟寧 迪慶 鷹潭 南寧 烏魯木齊 山南 三亞

巨人網絡通訊聲明:本文標題《laravel實現登錄時監聽事件,添加登錄用戶的記錄方法》,本文關鍵詞  laravel,實現,登錄,時,監聽,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《laravel實現登錄時監聽事件,添加登錄用戶的記錄方法》相關的同類信息!
  • 本頁收集關于laravel實現登錄時監聽事件,添加登錄用戶的記錄方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 横山县| 吉林省| 三明市| 葵青区| 景德镇市| 二手房| 榕江县| 阿合奇县| 松江区| 九龙坡区| 厦门市| 油尖旺区| 遂昌县| 隆林| 青浦区| 牡丹江市| 兖州市| 宁强县| 石首市| 大埔县| 金乡县| 巴南区| 辽阳市| 武功县| 邹平县| 昌黎县| 开鲁县| 伊金霍洛旗| 汪清县| 海城市| 江达县| 灌云县| 咸阳市| 中卫市| 故城县| 彭水| 泾川县| 富川| 县级市| 华亭县| 西乌珠穆沁旗|