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