diff options
Diffstat (limited to 'Year_3/TSDWL/LARAVEL/iBook/app/Providers/RouteServiceProvider.php')
-rw-r--r-- | Year_3/TSDWL/LARAVEL/iBook/app/Providers/RouteServiceProvider.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Year_3/TSDWL/LARAVEL/iBook/app/Providers/RouteServiceProvider.php b/Year_3/TSDWL/LARAVEL/iBook/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..3bd3c81 --- /dev/null +++ b/Year_3/TSDWL/LARAVEL/iBook/app/Providers/RouteServiceProvider.php @@ -0,0 +1,63 @@ +<?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()); + }); + } +} |