@page "/Auth/Login" @using DotBased.ASP.Auth.Domains @using DotBased.ASP.Auth.Services @using SharpRSS.Blazor.Extensions @inject NavigationManager NavigationManager @inject SecurityService SecurityService @inject ISnackbar Snackbar Login | SharpRSS SharpRSS login Login @code { [CascadingParameter] private Task AuthStateTask { get; set; } = null!; private string RedirectUrl { get; set; } = string.Empty; readonly LoginModel model = new(); protected override async Task OnInitializedAsync() { RedirectUrl = NavigationManager.GetQueryParameters().TryGetValue("RedirectUrl", out var redirectUrl) ? redirectUrl.ToString() : NavigationManager.BaseUri; var authState = await AuthStateTask; if (authState.User.Identity is { IsAuthenticated: true }) NavigationManager.NavigateTo(RedirectUrl, true); } private async void ValidSubmit(EditContext obj) { try { var loginResult = await SecurityService.LoginAsync(model); if (loginResult is { Success: true, Value: not null }) NavigationManager.NavigateTo(RedirectUrl, true); Snackbar.Add(loginResult.Message, Severity.Error); } catch (Exception e) { Snackbar.Add(e.Message, Severity.Error); } } }