46 lines
1.5 KiB
Plaintext
46 lines
1.5 KiB
Plaintext
@page "/login"
|
|
@inject SessionManager session
|
|
@inject NavigationManager navigation
|
|
|
|
<div class="form-container">
|
|
<h1>Login</h1>
|
|
|
|
<p>@toast</p>
|
|
|
|
<EditForm Model="@loginModel" OnSubmit="@HandleSubmit">
|
|
<InputText id="username" type="text" placeholder="Username" @bind-Value="loginModel.Username" tabindex=1 class="input-boxes" />
|
|
<InputText type="password" placeholder="Password" @bind-Value="loginModel.Password" tabindex=2 class="input-boxes" />
|
|
|
|
<button type="submit" tabindex="3">Submit</button>
|
|
</EditForm>
|
|
</div>
|
|
|
|
@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;
|
|
}
|
|
}
|
|
}
|
|
|