@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; } } }