* 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>
33 lines
995 B
Text
33 lines
995 B
Text
@inherits LayoutComponentBase
|
|
@inject IJSRuntime JSRuntime
|
|
|
|
<div class="page">
|
|
<main>
|
|
<CascadingAuthenticationState>
|
|
<AuthorizeView>
|
|
<Authorized>
|
|
<AuthHeader Email="@GetEmailFromContext(context)" />
|
|
<article class="content px-4">
|
|
@Body
|
|
</article>
|
|
</Authorized>
|
|
<NotAuthorized>
|
|
<LoginDisplay ErrorMessage="@GetErrorMessage()" />
|
|
</NotAuthorized>
|
|
</AuthorizeView>
|
|
</CascadingAuthenticationState>
|
|
</main>
|
|
</div>
|
|
|
|
@code {
|
|
private string GetEmailFromContext(AuthenticationState authState)
|
|
{
|
|
return authState.User?.FindFirst(System.Security.Claims.ClaimTypes.Email)?.Value ?? "Unknown";
|
|
}
|
|
|
|
private string GetErrorMessage()
|
|
{
|
|
// Get error message from URL query parameters
|
|
return ""; // We'll handle this through JS if needed
|
|
}
|
|
}
|