亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel如何實現登錄時監聽事件,添加登錄用戶

發布時間:2021-06-04 11:07:07 來源:億速云 閱讀:144 作者:小新 欄目:開發技術

小編給大家分享一下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如何實現登錄時監聽事件,添加登錄用戶”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

红桥区| 海盐县| 布拖县| 清水河县| 姚安县| 米林县| 玛纳斯县| 巴青县| 和顺县| 德令哈市| 富源县| 海丰县| 湘潭县| 外汇| 醴陵市| 乌鲁木齐县| 肥乡县| 普宁市| 广灵县| 乡城县| 达尔| 东海县| 萨嘎县| 精河县| 新和县| 禹城市| 岳阳市| 汶上县| 博爱县| 厦门市| 丽水市| 闽侯县| 四平市| 衡水市| 陇西县| 永福县| 遂昌县| 台东县| 宁陵县| 福建省| 平昌县|