- Timestamp:
- 09/14/26 21:15:01 (9 days ago)
- Branches:
- master
- Children:
- 93c368a
- Parents:
- ff7f308 (diff), ce1f8d4 (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. - Location:
- iknow-api
- Files:
-
- 31 added
- 2 edited
-
Controllers/AuthController.cs (added)
-
Controllers/UserController.cs (added)
-
DTOs/RefreshTokenDTO.cs (added)
-
DTOs/UserDTO.cs (added)
-
Data/AppDbContext.cs (added)
-
Migrations/20251216191800_InitialCreate.Designer.cs (added)
-
Migrations/20251216191800_InitialCreate.cs (added)
-
Migrations/AppDbContextModelSnapshot.cs (added)
-
Models/ActiveSemester.cs (added)
-
Models/ContactInfo.cs (added)
-
Models/DependencySubject.cs (added)
-
Models/Documents.cs (added)
-
Models/EnrolledSemesters.cs (added)
-
Models/EnrollmentInfo.cs (added)
-
Models/HighSchool.cs (added)
-
Models/Major.cs (added)
-
Models/MajorSubjects.cs (added)
-
Models/PassedSubject.cs (added)
-
Models/Payment.cs (added)
-
Models/ProfessorSubjects.cs (added)
-
Models/RefreshToken.cs (added)
-
Models/SemesterSubjects.cs (added)
-
Models/Subjects.cs (added)
-
Models/User.cs (added)
-
Models/UserDocuments.cs (added)
-
Program.cs (modified) (2 diffs)
-
Repository/Implementations/UserRepository.cs (added)
-
Repository/Interface/IUserRepository.cs (added)
-
Services/Implementations/AuthService.cs (added)
-
Services/Implementations/UserService.cs (added)
-
Services/Interfaces/IAuthService.cs (added)
-
Services/Interfaces/IUserService.cs (added)
-
appsettings.json (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
iknow-api/Program.cs
rff7f308 rdced479 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 -
iknow-api/appsettings.json
rff7f308 rdced479 6 6 } 7 7 }, 8 "AllowedHosts": "*" 8 "AllowedOrigins": [ 9 "http://localhost:3000", 10 "https://iknow-remaster.vercel.app" 11 ], 12 "ConnectionStrings": { 13 "DefaultConnection": "Host=ep-divine-term-aghfotgc-pooler.c-2.eu-central-1.aws.neon.tech; Database=neondb; Username=neondb_owner; Password=REDACTED_ROTATE_ME; SSL Mode=VerifyFull; Channel Binding=Require;" 14 }, 15 "Jwt": { 16 "Key": "REDACTED_SET_VIA_USER_SECRETS" 17 } 9 18 }
Note:
See TracChangeset
for help on using the changeset viewer.
