ShiftScheduler/Client/Program.cs
Copilot e8db13191e
Add Google OAuth authentication with configurable authorized emails (#29)
* Initial plan

* Add Google authentication with authorized email configuration

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Complete Google authentication implementation with documentation

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix CORS error by removing [Authorize] from auth user endpoint

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Add authorization attribute to ConfigurationController for security

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix JavaScript error in login button by correcting window.location.href usage

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix Google OAuth redirect URI configuration to resolve authentication error

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix OAuth state validation error by specifying authentication scheme in callback

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix OAuth state validation error by improving authentication configuration

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix authentication setup documentation with correct redirect URI

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Fix navigation buttons overlapping with authentication header

Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>

* Remove unused unsing

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: clayschaad <11883505+clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <clayschaad@users.noreply.github.com>
Co-authored-by: Claudio Schaad <c.schaad@pog.ch>
2025-08-27 21:18:50 +02:00

14 lines
623 B
C#

using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using ShiftScheduler.Client;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
builder.Services.AddAuthorizationCore();
builder.Services.AddScoped<AuthenticationStateProvider, ServerAuthenticationStateProvider>();
await builder.Build().RunAsync();