亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果用戶在 Laravel 中被鎖定,請通知管理員

如果用戶在 Laravel 中被鎖定,請通知管理員

PHP
元芳怎么了 2023-10-22 21:53:30
目前,我有以下三種狀態:Afor Active、DforDisabled和Lfor Locked。我已經設置了$maxAttempts = 3,$decayMinutes = 10并將代碼添加到了,LoginController以便只有活躍用戶才能登錄。protected function credentials(Request $request){    return array_merge($request->only($this->username(),         'password', 'site_id'), ['status' => 'A']);}但是,我不知道如何在用戶連續3次使用錯誤密碼登錄后自動將狀態從 更改為Active。Locked目前,觀點如下。
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

當鎖定發生時,Laravel 會觸發 Illuminte\Auth\Events\Lockout 事件。眾所周知,我們可以輕松地為此事件設置偵聽器并處理我們想要的任何邏輯。您可以使用php artisan make:listener UserLockedOut命令簡單地創建一個偵聽器。然后將監聽器綁定到事件服務提供者中的事件。


然后在偵聽器的句柄方法中,您可以編寫代碼來通知管理員并更新數據庫表列中用戶的狀態,當然,如果您想跟蹤用戶的狀態,那么只需在數據庫表中創建一列并在偵聽器句柄中調整它方法。


<?php


namespace App\Listeners;


use App\User;

use App\Notifications\LockedOut;

use Illuminate\Auth\Events\Lockout;


class UserLockedOut

{

    /**

     * Handle the event.

     *

     * @param  \Illuminate\Auth\Events\Lockout  $event

     * @return void

     */

    public function handle(Lockout $event)

    {

        if ($user = User::where('email', '[email protected]')->first()) {

            $user->notify(new LockedOut);

        }


        // code to update the database table column e.g

          

    }

}


查看完整回答
反對 回復 2023-10-22
  • 1 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號