You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
63 lines
1.6 KiB
<?php |
|
|
|
namespace App\Providers; |
|
|
|
use Illuminate\Cache\RateLimiting\Limit; |
|
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; |
|
use Illuminate\Http\Request; |
|
use Illuminate\Support\Facades\RateLimiter; |
|
use Illuminate\Support\Facades\Route; |
|
|
|
class RouteServiceProvider extends ServiceProvider |
|
{ |
|
/** |
|
* The path to the "home" route for your application. |
|
* |
|
* This is used by Laravel authentication to redirect users after login. |
|
* |
|
* @var string |
|
*/ |
|
public const HOME = '/home'; |
|
|
|
/** |
|
* The controller namespace for the application. |
|
* |
|
* When present, controller route declarations will automatically be prefixed with this namespace. |
|
* |
|
* @var string|null |
|
*/ |
|
// protected $namespace = 'App\\Http\\Controllers'; |
|
|
|
/** |
|
* Define your route model bindings, pattern filters, etc. |
|
* |
|
* @return void |
|
*/ |
|
public function boot() |
|
{ |
|
$this->configureRateLimiting(); |
|
|
|
$this->routes(function () { |
|
Route::prefix('api') |
|
->middleware('api') |
|
->namespace($this->namespace) |
|
->group(base_path('routes/api.php')); |
|
|
|
Route::middleware('web') |
|
->namespace($this->namespace) |
|
->group(base_path('routes/web.php')); |
|
}); |
|
} |
|
|
|
/** |
|
* 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()); |
|
}); |
|
} |
|
}
|
|
|