我正在使用ThrottleRequest限制登录尝试。 在Kendler.php中,我有
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
和我在web.php中的路线
Route::post('login', ['middleware' => 'throttle:3,1', 'uses' => 'Auth\LoginController@authenticate']);
当我第四次登录时,它返回状态429,并显示消息“ TOO MANY REQUESTS”。
(默认情况下,我猜)
但是我只想返回错误消息,例如:
return redirect('/login')
->withErrors(['errors' => 'xxxxxxx']);
有人帮助我!谢谢!
答案 0 :(得分:3)
您可以扩展中间件并覆盖buildException()
方法,以更改抛出ThrottleRequestsException
时传递的消息,也可以使用异常处理程序来捕获ThrottleRequestsException
并执行任何你想要的。
因此在Exceptions/Handler.php
中,您可以做类似的事情
use Illuminate\Http\Exceptions\ThrottleRequestsException;
public function render($request, Exception $exception)
{
if ($exception instanceof ThrottleRequestsException) {
//Do whatever you want here.
}
return parent::render($request, $exception);
}