webmoney/backend/app/Providers/AppServiceProvider.php
marco 54cccdd095 refactor: migração para desenvolvimento direto no servidor
- Removido README.md padrão do Laravel (backend)
- Removidos scripts de deploy (não mais necessários)
- Atualizado copilot-instructions.md para novo fluxo
- Adicionada documentação de auditoria do servidor
- Sincronizado código de produção com repositório

Novo workflow:
- Trabalhamos diretamente em /root/webmoney (symlink para /var/www/webmoney)
- Mudanças PHP são instantâneas
- Mudanças React requerem 'npm run build'
- Commit após validação funcional
2025-12-19 11:45:32 +01:00

50 lines
1.5 KiB
PHP
Executable File

<?php
namespace App\Providers;
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
// Rate limiting para autenticação (proteção contra brute force)
RateLimiter::for('login', function (Request $request) {
return Limit::perMinute(5)->by($request->ip())->response(function () {
return response()->json([
'success' => false,
'message' => 'Muitas tentativas de login. Tente novamente em 1 minuto.',
], 429);
});
});
RateLimiter::for('register', function (Request $request) {
return Limit::perHour(10)->by($request->ip())->response(function () {
return response()->json([
'success' => false,
'message' => 'Muitas tentativas de registro. Tente novamente mais tarde.',
], 429);
});
});
// Rate limiting para API geral (proteção contra abuso)
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
}
}