Laravel 节流消息

Laravel Throttle message

我正在使用 ThrottleRequest 来限制登录尝试。 在 Kendler.php 我有

'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

我的路线在web.php

Route::post('login', ['middleware' => 'throttle:3,1', 'uses' => 'Auth\LoginController@authenticate']);

当我第四次登录时,它 return 状态 429 和消息​​ 'TOO MANY REQUESTS.' (我猜默认情况下)
但我只想 return 错误信息,比如:

return redirect('/login')
            ->withErrors(['errors' => 'xxxxxxx']);

谁能帮帮我!谢谢!

您可以扩展中间件并覆盖 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);
}