mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
73 lines
2.8 KiB
Plaintext
73 lines
2.8 KiB
Plaintext
@page "/Account/RegisterConfirmation"
|
|
@using System.Text
|
|
@using Microsoft.AspNetCore.Identity
|
|
@using Microsoft.AspNetCore.WebUtilities
|
|
|
|
@inject UserManager<IdentityUser> UserManager
|
|
@inject IEmailSender<IdentityUser> EmailSender
|
|
@inject NavigationManager NavigationManager
|
|
@inject IdentityRedirectManager RedirectManager
|
|
|
|
<PageTitle>Register confirmation</PageTitle>
|
|
|
|
<h1>Register confirmation</h1>
|
|
|
|
<StatusMessage Message="@statusMessage"/>
|
|
|
|
@if(emailConfirmationLink is not null)
|
|
{
|
|
<p>
|
|
This app does not currently have a real email sender registered, see <a href="https://aka.ms/aspaccountconf">these docs</a> for how to configure a real email sender.
|
|
Normally this would be emailed: <a href="@emailConfirmationLink">Click here to confirm your account</a>
|
|
</p>
|
|
}
|
|
else
|
|
{
|
|
<p>Please check your email to confirm your account.</p>
|
|
}
|
|
|
|
@code {
|
|
private string? emailConfirmationLink;
|
|
private string? statusMessage;
|
|
|
|
[CascadingParameter]
|
|
private HttpContext HttpContext { get; set; } = default!;
|
|
|
|
[SupplyParameterFromQuery]
|
|
private string? Email { get; set; }
|
|
|
|
[SupplyParameterFromQuery]
|
|
private string? ReturnUrl { get; set; }
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
if(Email is null)
|
|
{
|
|
RedirectManager.RedirectTo("");
|
|
}
|
|
|
|
IdentityUser? user = await UserManager.FindByEmailAsync(Email);
|
|
|
|
if(user is null)
|
|
{
|
|
HttpContext.Response.StatusCode = StatusCodes.Status404NotFound;
|
|
statusMessage = "Error finding user for unspecified email";
|
|
}
|
|
else if(EmailSender is IdentityNoOpEmailSender)
|
|
{
|
|
// Once you add a real email sender, you should remove this code that lets you confirm the account
|
|
string userId = await UserManager.GetUserIdAsync(user);
|
|
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user);
|
|
code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
|
|
|
|
emailConfirmationLink = NavigationManager.GetUriWithQueryParameters(NavigationManager.ToAbsoluteUri("Account/ConfirmEmail").AbsoluteUri,
|
|
new Dictionary<string, object?>
|
|
{
|
|
["userId"] = userId,
|
|
["code"] = code,
|
|
["returnUrl"] = ReturnUrl
|
|
});
|
|
}
|
|
}
|
|
|
|
} |