2023-01-22 22:15:55 +00:00
|
|
|
@page "/login"
|
|
|
|
@inject SessionManager session
|
|
|
|
@inject NavigationManager navigation
|
|
|
|
|
|
|
|
<h1>Login</h1>
|
|
|
|
|
|
|
|
<p>@toast</p>
|
|
|
|
|
|
|
|
<EditForm Model="@loginModel" OnSubmit="@HandleSubmit">
|
2023-01-23 18:11:37 +00:00
|
|
|
<InputText id="username" type="text" placeholder="Username" @bind-Value="loginModel.Username" tabindex="1" />
|
|
|
|
<InputText type="password" placeholder="Password" @bind-Value="loginModel.Password" tabindex="2" />
|
2023-01-22 22:15:55 +00:00
|
|
|
|
2023-01-23 18:11:37 +00:00
|
|
|
<button type="submit" tabindex="3">Submit</button>
|
2023-01-22 22:15:55 +00:00
|
|
|
</EditForm>
|
|
|
|
|
|
|
|
@code {
|
|
|
|
private LoginModel loginModel = new();
|
|
|
|
private string toast = string.Empty;
|
|
|
|
|
|
|
|
[Inject]
|
|
|
|
private ILogger<Login> logger { get; set; }
|
|
|
|
|
|
|
|
private async Task HandleSubmit()
|
|
|
|
{
|
|
|
|
switch (await session.Authenticate(loginModel.Username, loginModel.Password))
|
|
|
|
{
|
|
|
|
case SelectorNetClient.TokenResponseStatus.Malformed:
|
|
|
|
toast = "Bad Request, Username or Password missing";
|
|
|
|
break;
|
|
|
|
case SelectorNetClient.TokenResponseStatus.UserSearchFailed:
|
|
|
|
toast = "User not found";
|
|
|
|
break;
|
|
|
|
case SelectorNetClient.TokenResponseStatus.BadCreds:
|
|
|
|
toast = "Login failed, try again";
|
|
|
|
break;
|
|
|
|
case SelectorNetClient.TokenResponseStatus.OK:
|
|
|
|
logger.LogInformation("Login succeeded, redirecting");
|
|
|
|
navigation.NavigateTo("/app");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
2023-01-23 18:11:37 +00:00
|
|
|
}
|
2023-01-22 22:15:55 +00:00
|
|
|
|