[2fc88ec] | 1 | <?php
|
---|
| 2 |
|
---|
| 3 | namespace App\Providers;
|
---|
| 4 |
|
---|
| 5 | use Illuminate\Cache\RateLimiting\Limit;
|
---|
| 6 | use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
---|
| 7 | use Illuminate\Http\Request;
|
---|
| 8 | use Illuminate\Support\Facades\RateLimiter;
|
---|
| 9 | use Illuminate\Support\Facades\Route;
|
---|
| 10 |
|
---|
| 11 | class RouteServiceProvider extends ServiceProvider
|
---|
| 12 | {
|
---|
| 13 | /**
|
---|
| 14 | * The path to the "home" route for your application.
|
---|
| 15 | *
|
---|
| 16 | * This is used by Laravel authentication to redirect users after login.
|
---|
| 17 | *
|
---|
| 18 | * @var string
|
---|
| 19 | */
|
---|
[24a616f] | 20 | public const HOME = '/dashboard';
|
---|
[2fc88ec] | 21 |
|
---|
| 22 | /**
|
---|
| 23 | * The controller namespace for the application.
|
---|
| 24 | *
|
---|
| 25 | * When present, controller route declarations will automatically be prefixed with this namespace.
|
---|
| 26 | *
|
---|
| 27 | * @var string|null
|
---|
| 28 | */
|
---|
[7304c7f] | 29 | protected $namespace = 'App\\Http\\Controllers';
|
---|
[2fc88ec] | 30 |
|
---|
| 31 | /**
|
---|
| 32 | * Define your route model bindings, pattern filters, etc.
|
---|
| 33 | *
|
---|
| 34 | * @return void
|
---|
| 35 | */
|
---|
| 36 | public function boot()
|
---|
| 37 | {
|
---|
| 38 | $this->configureRateLimiting();
|
---|
| 39 |
|
---|
| 40 | $this->routes(function () {
|
---|
| 41 | Route::prefix('api')
|
---|
| 42 | ->middleware('api')
|
---|
| 43 | ->namespace($this->namespace)
|
---|
| 44 | ->group(base_path('routes/api.php'));
|
---|
| 45 |
|
---|
| 46 | Route::middleware('web')
|
---|
| 47 | ->namespace($this->namespace)
|
---|
| 48 | ->group(base_path('routes/web.php'));
|
---|
| 49 | });
|
---|
| 50 | }
|
---|
| 51 |
|
---|
| 52 | /**
|
---|
| 53 | * Configure the rate limiters for the application.
|
---|
| 54 | *
|
---|
| 55 | * @return void
|
---|
| 56 | */
|
---|
| 57 | protected function configureRateLimiting()
|
---|
| 58 | {
|
---|
| 59 | RateLimiter::for('api', function (Request $request) {
|
---|
| 60 | return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
|
---|
| 61 | });
|
---|
| 62 | }
|
---|
| 63 | }
|
---|