猿问

Laravel 重置密码垃圾邮件

你好,我正在使用 Laravel DEFAULT 密码重置,它工作得很好,但是有一个小问题,我可以每分钟请求“密码重置”,但我不喜欢它,所以我的问题是如何减少该请求比如,我希望能够每 5m 发出 2 个请求。


/ForgotPasswordController.php


 public function __construct()

    {

        if (preg_match('/en/',url()->previous())){

            App::setLocale('en');

        }else{

            App::setLocale('ru');

        }


        $this->middleware('guest');


    }


狐的传说
浏览 122回答 2
2回答

元芳怎么了

您可以使用 Laravel 默认提供的 ThrottleRequests 中间件,方法是在控制器构造函数中定义它:public function __construct(){    if (preg_match('/en/', url()->previous())) {        App::setLocale('en');    } else {        App::setLocale('ru');    }    $this->middleware('throttle:2,5');    $this->middleware('guest');}...或者将其添加到路线定义中。Route::post('/password/reset', 'ForgotPasswordController@yourFunction')    ->middleware('throttle:2,5');有关参数的其他信息:https ://www.cloudways.com/blog/laravel-and-api-rate-limiting/

FFIVE

最好的方法是使用时间比较或漏桶,它只记录最后一个请求。密码重置的时间应记录在后端,然后可以使用条件来确保在 5 分钟内不会完成两次重置。查看这些示例:时间比较器漏桶法
随时随地看视频慕课网APP
我要回答