mirror of
https://github.com/hmaxnl/SharpRSS.git
synced 2025-04-12 18:41:27 +02:00
65 lines
2.4 KiB
Plaintext
65 lines
2.4 KiB
Plaintext
@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
|
|
|
|
<PageTitle>Login | SharpRSS</PageTitle>
|
|
|
|
<MudElement>
|
|
<MudOverlay DarkBackground="true" Visible="true">
|
|
<EditForm Model="@model" OnValidSubmit="ValidSubmit">
|
|
<DataAnnotationsValidator/>
|
|
<MudGrid>
|
|
<MudItem>
|
|
<MudCard>
|
|
<MudCardHeader>
|
|
<MudText>SharpRSS login</MudText>
|
|
</MudCardHeader>
|
|
<MudCardContent>
|
|
<MudTextField Label="UserName" @bind-Value="model.UserName" For="@(() => model.UserName)"/>
|
|
<MudTextField Label="Password" @bind-Value="model.Password" For="@(() => model.Password)" InputType="InputType.Password"/>
|
|
</MudCardContent>
|
|
<MudCardActions>
|
|
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary">Login</MudButton>
|
|
</MudCardActions>
|
|
</MudCard>
|
|
</MudItem>
|
|
</MudGrid>
|
|
</EditForm>
|
|
</MudOverlay>
|
|
</MudElement>
|
|
|
|
@code {
|
|
[CascadingParameter]
|
|
private Task<AuthenticationState> 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);
|
|
}
|
|
}
|
|
|
|
} |