你好,我正在使用 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'); }
2 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
您可以使用 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
TA貢獻1797條經驗 獲得超6個贊
最好的方法是使用時間比較或漏桶,它只記錄最后一個請求。密碼重置的時間應記錄在后端,然后可以使用條件來確保在 5 分鐘內不會完成兩次重置。查看這些示例:
時間比較器
漏桶法
- 2 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消