Files
Aaru.Server/Aaru.Server.New/Components/Account/Pages/ConfirmEmail.razor

48 lines
1.4 KiB
Plaintext
Raw Normal View History

2024-05-02 07:43:47 +01:00
@page "/Account/ConfirmEmail"
@using System.Text
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
@inject UserManager<IdentityUser> UserManager
@inject IdentityRedirectManager RedirectManager
2024-05-02 07:43:47 +01:00
<PageTitle>Confirm email</PageTitle>
<h1>Confirm email</h1>
<StatusMessage Message="@statusMessage"/>
@code {
private string? statusMessage;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
[SupplyParameterFromQuery]
private string? UserId { get; set; }
[SupplyParameterFromQuery]
private string? Code { get; set; }
protected override async Task OnInitializedAsync()
{
if(UserId is null || Code is null)
{
RedirectManager.RedirectTo("");
}
IdentityUser? user = await UserManager.FindByIdAsync(UserId);
2024-05-02 07:43:47 +01:00
if(user is null)
{
HttpContext.Response.StatusCode = StatusCodes.Status404NotFound;
statusMessage = $"Error loading user with ID {UserId}";
}
else
{
2024-05-03 03:24:40 +01:00
string code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(Code));
IdentityResult result = await UserManager.ConfirmEmailAsync(user, code);
2024-05-02 07:43:47 +01:00
statusMessage = result.Succeeded ? "Thank you for confirming your email." : "Error confirming your email.";
}
}
}