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
42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using Gott.Endpoints;
|
|
using Gott.Middleware;
|
|
using Gott.Services;
|
|
using Microsoft.AspNetCore.Builder;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
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));
|
|
|
|
var app = builder.Build();
|
|
app.UseDefaultFiles();
|
|
app.UseStaticFiles();
|
|
app.UseMiddleware<AuthMiddleware>();
|
|
|
|
app.MapAuthEndpoints();
|
|
app.MapChatEndpoint();
|
|
app.MapHistoryEndpoint();
|
|
app.MapSessionEndpoints();
|
|
app.MapAgentEndpoints();
|
|
app.MapWorkspaceEndpoint();
|
|
app.MapInfoEndpoint();
|
|
app.MapBackupEndpoint();
|
|
app.MapSkillEndpoints();
|
|
|
|
app.Run("http://0.0.0.0:19000");
|