Laravel节气门消息

时间:2018-10-11 08:02:04

标签: laravel throttling

我正在使用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']);

有人帮助我!谢谢!

1 个答案:

答案 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);
}