Files
2026-09-30 11:11:54 +08:00

29 lines
691 B
PHP

<?php
declare(strict_types=1);
namespace App\Providers;
use App\Support\TenantContext;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function register(): void
{
$this->app->singleton(TenantContext::class);
}
public function boot(): void
{
RateLimiter::for('api', function (Request $request): Limit {
$tenantCode = app(TenantContext::class)->get() ?? 'guest';
return Limit::perMinute(60)->by($tenantCode.'|'.($request->ip() ?? 'unknown'));
});
}
}