Changeset af4f801 for iknow-api/Program.cs
- Timestamp:
- 09/14/26 21:15:01 (10 days ago)
- Branches:
- master
- Children:
- 10009b9
- Parents:
- c72ed3b (diff), 4b35197 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
iknow-api/Program.cs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
iknow-api/Program.cs
rc72ed3b raf4f801 1 using System.Text; 2 using System.Text.Json.Serialization; 3 using iknow_api.Data; 4 using iknow_api.Repositories; 5 using iknow_api.Services; 6 using Microsoft.AspNetCore.Authentication.JwtBearer; 7 using Microsoft.EntityFrameworkCore; 8 using Microsoft.IdentityModel.Tokens; 9 1 10 var builder = WebApplication.CreateBuilder(args); 2 11 12 // Add CORS policy 13 builder.Services.AddCors(options => 14 { 15 options.AddPolicy("AllowFrontend", policy => 16 { 17 var allowedOrigins = builder.Configuration.GetSection("AllowedOrigins").Get<string[]>() 18 ?? new[] { "http://localhost:3000" }; 19 20 policy.WithOrigins(allowedOrigins) // Your frontend URL(s) 21 .AllowAnyHeader() 22 .AllowAnyMethod() 23 .AllowCredentials(); 24 }); 25 }); 26 27 builder.Services.AddAuthentication(options => 28 { 29 options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; 30 options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; 31 }) 32 .AddJwtBearer(options => 33 { 34 options.RequireHttpsMetadata = false; // only for development 35 options.SaveToken = true; 36 options.TokenValidationParameters = new TokenValidationParameters 37 { 38 ValidateIssuer = true, 39 ValidIssuer = "iknow-api", 40 41 ValidateAudience = true, 42 ValidAudience = "iknow-api", 43 44 ValidateLifetime = true, 45 46 ValidateIssuerSigningKey = true, 47 IssuerSigningKey = new SymmetricSecurityKey( 48 Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"])) 49 }; 50 }); 3 51 // Add services to the container. 4 5 builder.Services.AddControllers(); 6 // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi 52 builder.Services.AddControllers() 53 .AddJsonOptions(options => 54 { 55 options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; 56 options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; 57 options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); 58 }); 7 59 builder.Services.AddOpenApi(); 8 60 61 // Register DbContext 62 builder.Services.AddDbContext<AppDbContext>(options => 63 options.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection"))); 64 65 // Register your services 66 builder.Services.AddScoped<IAuthService, AuthService>(); 67 builder.Services.AddScoped<IUserRepository, UserRepository>(); // You'll need to add the UserRepository implementation 68 builder.Services.AddScoped<IUserService, UserService>(); 69 70 builder.Services.AddScoped<IRefreshTokenService, RefreshTokenService>(); 71 builder.Services.AddScoped<IUserRepository, UserRepository>(); 72 builder.Services.AddScoped<IRefreshTokenRepository, RefreshTokenRepository>(); 73 builder.Services.AddAuthorization(); 9 74 var app = builder.Build(); 10 75 … … 15 80 } 16 81 82 // Enable CORS - must be called before UseAuthentication and UseAuthorization 83 app.UseCors("AllowFrontend"); 84 17 85 app.UseHttpsRedirection(); 18 86 app.UseAuthentication(); // <-- must come BEFORE UseAuthorization 19 87 app.UseAuthorization(); 20 21 88 app.MapControllers(); 22 89
Note:
See TracChangeset
for help on using the changeset viewer.
