@page "/change-password" @attribute [Authorize] @rendermode InteractiveServer @inject HttpClient Http @inject NavigationManager Navigation @inject IJSRuntime JSRuntime Change Password

Change Password

Change Your Password
Cancel @if (!string.IsNullOrEmpty(message)) {
@message
}
@code { private string currentPassword = ""; private string newPassword = ""; private string confirmNewPassword = ""; private bool saving; private string? message; private async Task DoChangePassword() { saving = true; message = null; try { if (string.IsNullOrWhiteSpace(currentPassword)) { message = "Current password is required."; return; } if (string.IsNullOrWhiteSpace(newPassword) || newPassword.Length < 6) { message = "New password must be at least 6 characters."; return; } if (newPassword != confirmNewPassword) { message = "New passwords do not match."; return; } var content = new FormUrlEncodedContent(new Dictionary { ["newPassword"] = newPassword }); var response = await Http.PutAsync("/accounts/me/changepassword", content); if (!response.IsSuccessStatusCode) { message = "Error: Failed to change password."; return; } message = "Password changed successfully!"; currentPassword = ""; newPassword = ""; confirmNewPassword = ""; } catch (Exception ex) { message = $"Error: {ex.Message}"; } finally { saving = false; } } }