books/backend/Books.Api/Books.Api.csproj
Nicolaj Hartmann 926085eeab Add OpenID Connect + API Key authentication
Backend:
- Cookie + OIDC + API Key authentication schemes
- ApiKeyAuthenticationHandler with SHA-256 validation and 24h cache
- AuthController with login/logout/profile endpoints
- API Key domain model (EventFlow aggregate, events, commands)
- ApiKeyReadModel and repository for key validation
- Database migration 002_ApiKeys.sql
- CORS configuration for frontend

Frontend:
- authService.ts for login/logout/profile API calls
- authStore.ts (Zustand) for user context state
- ProtectedRoute component for route guards
- Header updated with user display and logout
- GraphQL client with credentials: include

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 11:49:29 +01:00

49 lines
1.9 KiB
XML

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>14</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<AnalysisLevel>latest</AnalysisLevel>
</PropertyGroup>
<ItemGroup>
<!-- EventFlow (local source) -->
<ProjectReference Include="../../../EventFlow/Source/EventFlow/EventFlow.csproj" />
<ProjectReference Include="../../../EventFlow/Source/EventFlow.PostgreSql/EventFlow.PostgreSql.csproj" />
<ProjectReference Include="../../../EventFlow/Source/EventFlow.Hangfire/EventFlow.Hangfire.csproj" />
<!-- Database -->
<PackageReference Include="Npgsql" Version="10.0.1" />
<PackageReference Include="Dapper" Version="2.1.66" />
<PackageReference Include="dbup-postgresql" Version="5.0.40" />
<!-- Hangfire -->
<PackageReference Include="Hangfire.Core" Version="1.8.22" />
<PackageReference Include="Hangfire.AspNetCore" Version="1.8.22" />
<PackageReference Include="Hangfire.PostgreSql" Version="1.20.13" />
<!-- Serialization -->
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<!-- GraphQL -->
<PackageReference Include="GraphQL" Version="8.0.2" />
<PackageReference Include="GraphQL.Server.Transports.AspNetCore" Version="8.0.2" />
<PackageReference Include="GraphQL.Server.Ui.Altair" Version="8.0.2" />
<PackageReference Include="GraphQL.DataLoader" Version="8.0.2" />
<PackageReference Include="GraphQL.MicrosoftDI" Version="8.0.2" />
<!-- DI Decoration -->
<PackageReference Include="Scrutor" Version="5.0.2" />
<!-- Authentication -->
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="10.0.0" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Database\Migrations\*.sql" />
</ItemGroup>
</Project>