如何配置用户登录时禁止更多最大尝试次数?

我在 Laravel 7 工作


我根据需要调整loginController;最大尝试次数和衰减分钟数


public function maxAttempts()

{

        return General::first()->max_attempts;

}


public function decayMinutes()

{

        return General::first()->decay_minutes;

}

如何禁止用户超过 maxAttempts


示例 => 最大尝试次数 = 4


我想禁止用户尝试失败 5 次


$user->is_block = true


慕无忌1623718
浏览 143回答 2
2回答

动漫人物

您将需要为用户创建一个列来计算他们不成功的登录尝试。每次不成功的尝试时,您都会增加该值,并在达到特定限制时阻止用户。如果登录成功,则将计数器设置为0。

绝地无双

我测试了一下,是正确的。首先在您的EventServiceProvider 中创建两个事件侦听器。 登录成功和登录失败protected $listen = [        Registered::class => [            SendEmailVerificationNotification::class,        ],        'Illuminate\Auth\Events\Login' => [            'App\Listeners\SuccessfulLogin',        ],        'Illuminate\Auth\Events\Failed' => [            'App\Listeners\FailedLogin',        ],    ];在成功登录中:public function handle(Login $event)    {                $event->user->user_last_login_date = Carbon::now();        $event->user->unsuccessful_login_count = 0;        $event->user->save();    }在登录失败中:$event->user->unsuccessful_login_count += 1 ;        $unsuccessful_count =   General::first()->max_attempts;        if ($event->user->unsuccessful_login_count == $unsuccessful_count ) {            $event->user->three_attempt_timestamp = Carbon::now()->toDateString();        }        if ($event->user->unsuccessful_login_count > $unsuccessful_count ) {            $event->user->is_block = 1;        }        $event->user->save();
打开App,查看更多内容
随时随地看视频慕课网APP