27 lines
872 B
PHP
27 lines
872 B
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use Illuminate\Cache\RateLimiting\Limit;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\RateLimiter;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
final class RsyncStudioLicensingServiceProvider extends ServiceProvider
|
|
{
|
|
public function boot(): void
|
|
{
|
|
RateLimiter::for('license-activation', function (Request $request): array {
|
|
return [
|
|
Limit::perMinute(12)->by($request->ip()),
|
|
Limit::perMinute(6)->by(hash('sha256', (string) $request->input('installationID'))),
|
|
];
|
|
});
|
|
|
|
RateLimiter::for('login', fn (Request $request) => Limit::perMinute(5)
|
|
->by(strtolower((string) $request->input('email')).'|'.$request->ip()));
|
|
|
|
RateLimiter::for('registration', fn (Request $request) => Limit::perHour(5)->by($request->ip()));
|
|
}
|
|
}
|