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 | */
|
---|
20 | public const HOME = '/home';
|
---|
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 | */
|
---|
29 | protected $namespace = 'App\\Http\\Controllers';
|
---|
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 | }
|
---|