Implement rate limiting and enhance authentication flow
- Added rate limiting configuration for authentication endpoints, allowing customizable request limits via environment variables. - Updated authentication flow to utilize HttpRequest for cookie management, ensuring secure handling of refresh tokens. - Introduced a new endpoint to retrieve user subscription details. - Enhanced the handling of Telegram bot token validation to prevent errors with empty tokens. - Updated the application to serialize enums as strings for better documentation and compatibility with TypeScript. - Improved test coverage for new features and adjustments in command handlers.
This commit is contained in:
@@ -26,10 +26,12 @@ public static class DependencyInjection
|
||||
{
|
||||
public static IServiceCollection AddInfrastructure(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var connectionString = configuration["ConnectionStrings:Default"]
|
||||
?? throw new InvalidOperationException("Строка подключения 'ConnectionStrings:Default' не сконфигурирована.");
|
||||
|
||||
services.AddDbContext<AppDbContext>(options => options.UseNpgsql(connectionString));
|
||||
// Строка подключения читается лениво внутри лямбды (а не в локальную переменную сразу), иначе
|
||||
// в тестах WebApplicationFactory.ConfigureAppConfiguration (Testcontainers-порт) не успевает
|
||||
// примениться до регистрации DbContext — окажется закэширован дефолт из appsettings.json.
|
||||
services.AddDbContext<AppDbContext>(options => options.UseNpgsql(
|
||||
configuration["ConnectionStrings:Default"]
|
||||
?? throw new InvalidOperationException("Строка подключения 'ConnectionStrings:Default' не сконфигурирована.")));
|
||||
services.AddScoped<IAppDbContext>(sp => sp.GetRequiredService<AppDbContext>());
|
||||
|
||||
services
|
||||
|
||||
Reference in New Issue
Block a user