@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);
}
}
}