27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
using Microsoft.AspNetCore.Components.Authorization;
|
|
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
|
using EnvelopeGenerator.ReceiverUI.Client.Auth;
|
|
using EnvelopeGenerator.ReceiverUI.Client.Services;
|
|
using EnvelopeGenerator.ReceiverUI.Client.State;
|
|
|
|
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
|
|
|
// HttpClient: BaseAddress zeigt auf den ReceiverUI-Server (gleiche Domain)
|
|
// Von dort werden alle /api/* Calls via YARP an die echte API weitergeleitet
|
|
builder.Services.AddScoped(sp =>
|
|
new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
|
|
|
|
// Auth: Blazor fragt über diesen Provider "Ist der Nutzer eingeloggt?"
|
|
builder.Services.AddAuthorizationCore();
|
|
builder.Services.AddScoped<ApiAuthStateProvider>();
|
|
builder.Services.AddScoped<AuthenticationStateProvider>(sp =>
|
|
sp.GetRequiredService<ApiAuthStateProvider>());
|
|
|
|
// API-Services: Je ein Service pro API-Controller
|
|
builder.Services.AddScoped<IAuthService, AuthService>();
|
|
builder.Services.AddScoped<IEnvelopeService, EnvelopeService>();
|
|
|
|
// State: Ein State-Objekt pro Browser-Tab
|
|
builder.Services.AddScoped<EnvelopeState>();
|
|
|
|
await builder.Build().RunAsync(); |