/
Egor1k
/
CompClubAPI
Обзор
Документация
Войти
/
Egor1k
/
CompClubAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Program.cs
85 строк
3 KB
Dima Oshuev
заработал docker-compose между api и бд
27 мар 2025, 21:48
27 мар 2025, 21:48
b1486e6
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using System.Text; using System.Text.Json.Serialization; using CompClubAPI; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.IdentityModel.Tokens; public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection"))); builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; }); builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles; }); builder.Services.AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault; }); var jwtSettings = builder.Configuration.GetSection("Jwt"); var key = Encoding.UTF8.GetBytes(jwtSettings["Key"]); builder.Services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = jwtSettings["Issuer"], ValidAudience = jwtSettings["Audience"], IssuerSigningKey = new SymmetricSecurityKey(key) }; }); builder.Services.AddCors(options => { options.AddPolicy("AllowReactApp", builder => { builder.WithOrigins("http://localhost:3001") .AllowAnyHeader() .AllowAnyMethod(); }); }); builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); var app = builder.Build(); builder.WebHost.UseUrls("http://0.0.0.0:8000"); app.UseAuthentication(); app.UseCors("AllowReactApp"); app.UseAuthorization(); app.MapControllers(); app.Run(); } }