@page "/register"
@using PlaylistShared.Shared.Auth
@inject HttpClient Http
@inject AuthStateProvider AuthProvider
@inject NavigationManager Navigation
@inject ISnackbar Snackbar
Регистрация
Зарегистрироваться
Уже есть аккаунт? Войти
@code {
private RegisterModel _model = new();
private async Task OnRegister()
{
if (_model.Password != _model.ConfirmPassword)
{
Snackbar.Add("Пароли не совпадают", Severity.Error);
return;
}
var response = await Http.PostAsJsonAsync("/api/account/register", _model);
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadFromJsonAsync>();
if (result?.Success == true)
{
await AuthProvider.MarkUserAsAuthenticated(result.Data.Token, result.Data.RefreshToken);
Navigation.NavigateTo("/");
}
else
{
Snackbar.Add(result?.Error?.Message ?? "Ошибка регистрации", Severity.Error);
}
}
else
{
var error = await response.Content.ReadFromJsonAsync>();
Snackbar.Add(error?.Error?.Message ?? "Ошибка регистрации", Severity.Error);
}
}
public class RegisterModel
{
public string Username { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
}
}