91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

西和县| 扬中市| 阳春市| 紫金县| 康平县| 湘阴县| 临沭县| 通海县| 新沂市| 贵阳市| 潞城市| 肇州县| 即墨市| 青海省| 新乐市| 龙口市| 丹巴县| 海兴县| 固阳县| 红桥区| 河西区| 灵武市| 谢通门县| 翼城县| 吉木乃县| 马关县| 长岛县| 宁晋县| 和顺县| 合山市| 买车| 赤壁市| 沙田区| 辰溪县| 灵璧县| 读书| 广饶县| 洛隆县| 正蓝旗| 禹城市| 鹿邑县|