myhn/Apps/BlazorClient/Pages/Login.razor
2021-01-08 16:26:19 +01:00

40 lines
1.0 KiB
Plaintext

@page "/login"
@inject AccountsClient Accounts
@inject NotificationManager Notification
@inject AuthenticationStateProvider AuthStateProvider
@inject NavigationManager Navigation
<Title Value="Se connecter" />
<h1>Se connecter</h1>
<EditForm Model="_model" OnValidSubmit="TryLogin">
<DataAnnotationsValidator />
<InputText @bind-Value="_model.Username" />
<ValidationMessage For="@(() => _model.Username)" />
<InputText type="password" @bind-Value="_model.Password" />
<ValidationMessage For="@(() => _model.Password)" />
<button type="submit">Se connecter</button>
</EditForm>
@code {
private LoginViewModel _model = new LoginViewModel();
private async Task TryLogin()
{
try
{
var token = await Accounts.LoginAsync(_model);
await ((JwtAuthStateProvider)AuthStateProvider).MarkUserAsAuthenticated(token);
Notification.Add("Vous êtes connectés !");
Navigation.NavigateTo("/");
}
catch
{
Notification.Add("Vérifier vos identifiants !");
}
}
}