From c2b681d267fa27b489b77f1ae18bcf7c61b812ce Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Mon, 2 Feb 2026 04:48:42 -0600 Subject: [PATCH] feat(api): integrate infra and implement password verification on login --- src/FiscalOS.API/FiscalOS.API.csproj | 6 +++++- src/FiscalOS.API/Login/Endpoint.cs | 13 ++++++++++++- src/FiscalOS.API/Program.cs | 6 +----- src/FiscalOS.API/Usings.cs | 7 +++---- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/FiscalOS.API/FiscalOS.API.csproj b/src/FiscalOS.API/FiscalOS.API.csproj index cc3e03b..abc943c 100644 --- a/src/FiscalOS.API/FiscalOS.API.csproj +++ b/src/FiscalOS.API/FiscalOS.API.csproj @@ -6,7 +6,11 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + + + + + diff --git a/src/FiscalOS.API/Login/Endpoint.cs b/src/FiscalOS.API/Login/Endpoint.cs index 42fc8f1..d0273b5 100644 --- a/src/FiscalOS.API/Login/Endpoint.cs +++ b/src/FiscalOS.API/Login/Endpoint.cs @@ -1,3 +1,6 @@ + +using FiscalOS.Core.Identity; + namespace FiscalOS.API.Login; internal static class Endpoint @@ -11,7 +14,8 @@ internal static class Endpoint private static async Task HandleAsync( [FromBody] LoginRequest loginRequest, - [FromServices] AppDbContext appDbContext + [FromServices] AppDbContext appDbContext, + [FromServices] IPasswordHasher passwordHasher ) { // TODO: Implement actual auth flow @@ -37,6 +41,13 @@ internal static class Endpoint return Results.Unauthorized(); } + var isCorrectPassword = passwordHasher.Verify(loginRequest.Password, user.HashedPassword); + + if (isCorrectPassword is false) + { + return Results.Unauthorized(); + } + return Results.Ok(); } } \ No newline at end of file diff --git a/src/FiscalOS.API/Program.cs b/src/FiscalOS.API/Program.cs index 93745dd..e84eba6 100644 --- a/src/FiscalOS.API/Program.cs +++ b/src/FiscalOS.API/Program.cs @@ -1,13 +1,9 @@ -using FiscalOS.API.Data; - var builder = WebApplication.CreateBuilder(args); builder.Services.AddValidation(); builder.Services.AddOpenApi(); -builder.Services.ConfigureOptions(); -builder.Services.AddDbContext(); -builder.Services.AddHostedService(); +builder.Services.AddInfrastructure(); var app = builder.Build(); diff --git a/src/FiscalOS.API/Usings.cs b/src/FiscalOS.API/Usings.cs index 7162f7b..3edd5b1 100644 --- a/src/FiscalOS.API/Usings.cs +++ b/src/FiscalOS.API/Usings.cs @@ -1,9 +1,8 @@ global using System.ComponentModel.DataAnnotations; -global using FiscalOS.API.Data; -global using FiscalOS.API.Identity; global using FiscalOS.API.Login; +global using FiscalOS.Infra.Data; +global using FiscalOS.Infra.DependencyInjection; global using Microsoft.AspNetCore.Mvc; -global using Microsoft.EntityFrameworkCore; -global using Microsoft.Extensions.Options; \ No newline at end of file +global using Microsoft.EntityFrameworkCore; \ No newline at end of file