feat: User-Management mit Token-basierter Authentifizierung
Backend: - UserRecord Model + Users-Tabelle in DB - AuthService: SHA256-Passwort-Hashing, Token-Verwaltung (ConcurrentDictionary) - AuthMiddleware: Schützt alle /api/-Routes (außer /api/auth/login) - AuthEndpoint: Login, Logout, Me - Default-User admin/admin wird automatisch erstellt Frontend: - Login-Page mit Formular (Enter-Key-Support) - Globaler Fetch-Interceptor: 401 → automatisch Login-Redirect - Auth-Check beim App-Start und bei Hash-Änderungen - Logout-Link im Dashboard-Header - Login-CSS: Zentrierte Login-Box
This commit is contained in:
1 parent
a1c54bf376
commit
9a59ae686d
13 files changed
+446
-3
No files matched your search
+9
-1
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using Gott.Endpoints;
|
||||
using Gott.Middleware;
|
||||
using Gott.Services;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -10,17 +11,24 @@ builder.Services.AddHttpClient();
|
||||
|
||||
var dataDir = Path.Combine(AppContext.BaseDirectory, "data");
|
||||
|
||||
var authService = new AuthService();
|
||||
var dbService = new DatabaseService(Path.Combine(dataDir, "gott.db"));
|
||||
dbService.EnsureDefaultUser(authService);
|
||||
|
||||
builder.Services.AddSingleton(authService);
|
||||
builder.Services.AddSingleton(dbService);
|
||||
builder.Services.AddSingleton(new ToolService());
|
||||
builder.Services.AddSingleton(new ImageService());
|
||||
builder.Services.AddSingleton(new StreamingTracker());
|
||||
builder.Services.AddSingleton(new MemoryService(dataDir));
|
||||
builder.Services.AddSingleton(new SkillService(dataDir));
|
||||
builder.Services.AddSingleton(new DatabaseService(Path.Combine(dataDir, "gott.db")));
|
||||
|
||||
var app = builder.Build();
|
||||
app.UseDefaultFiles();
|
||||
app.UseStaticFiles();
|
||||
app.UseMiddleware<AuthMiddleware>();
|
||||
|
||||
app.MapAuthEndpoints();
|
||||
app.MapChatEndpoint();
|
||||
app.MapHistoryEndpoint();
|
||||
app.MapSessionEndpoints();
|
||||
|
||||
Reference in new issue
Block a user