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 }