/ app / Providers / FortifyServiceProvider.php
FortifyServiceProvider.php
 1  <?php
 2  
 3  namespace App\Providers;
 4  
 5  use App\Actions\Fortify\CreateNewUser;
 6  use App\Actions\Fortify\ResetUserPassword;
 7  use App\Actions\Fortify\UpdateUserPassword;
 8  use App\Actions\Fortify\UpdateUserProfileInformation;
 9  use Illuminate\Cache\RateLimiting\Limit;
10  use Illuminate\Http\Request;
11  use Illuminate\Support\Facades\RateLimiter;
12  use Illuminate\Support\ServiceProvider;
13  use Laravel\Fortify\Fortify;
14  
15  class FortifyServiceProvider extends ServiceProvider
16  {
17      /**
18       * Register any application services.
19       */
20      public function register(): void
21      {
22          //
23      }
24  
25      /**
26       * Bootstrap any application services.
27       */
28      public function boot(): void
29      {
30          Fortify::createUsersUsing(CreateNewUser::class);
31          Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
32          Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
33          Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
34  
35          RateLimiter::for('login', function (Request $request) {
36              $email = (string) $request->email;
37  
38              return Limit::perMinute(5)->by($email.$request->ip());
39          });
40  
41          RateLimiter::for('two-factor', function (Request $request) {
42              return Limit::perMinute(5)->by($request->session()->get('login.id'));
43          });
44      }
45  }