* 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>
32 lines
No EOL
723 B
Text
32 lines
No EOL
723 B
Text
@inject HttpClient Http
|
|
@inject IJSRuntime JSRuntime
|
|
|
|
<div class="auth-header">
|
|
<div class="user-info">
|
|
Welcome, @Email
|
|
</div>
|
|
<button class="btn btn-outline-danger logout-btn" @onclick="Logout">
|
|
Sign Out
|
|
</button>
|
|
</div>
|
|
|
|
@code {
|
|
[Parameter] public string Email { get; set; } = string.Empty;
|
|
[Parameter] public EventCallback OnLogout { get; set; }
|
|
|
|
private async Task Logout()
|
|
{
|
|
try
|
|
{
|
|
await Http.PostAsync("api/auth/logout", null);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
// Ignore errors, just redirect
|
|
}
|
|
finally
|
|
{
|
|
await JSRuntime.InvokeVoidAsync("window.location.reload");
|
|
}
|
|
}
|
|
} |