Laravel 8 — Passport API Routing Rate Limiting

Jay Gao
Jan 18, 2021

In Laravel 8, the rate limiting has been improved.

For the api middleware, the rate limiting settings is now moved to the app/Providers/RouteServiceProvider.php file.

/**
* Configure the rate limiters for the application.
*
* @return void
*/
protected function configureRateLimiting()
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
});
}

The default limiting is 60 requests per minute.

For more details, please visit https://laravel.com/docs/8.x/releases#improved-rate-limiting

In previous versions of Laravel, the api middleware rate limiting was set in the kernel.php file

/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],

'api' => [
'throttle:60,1',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];

--

--