Cześć. Tworzę API. API po rejestracji wysyła link aktywacyjny. Właśnie ale jak ten link ma wyglądać ?
[HttpPost("register")]
[AllowAnonymous]
public async Task<IActionResult> Register([FromBody]RegisterDTO registerDTO)
{
try
{
var user = new ApplicationUser(registerDTO.Email, registerDTO.UserName, registerDTO.FirstName, registerDTO.LastName);
var result = await userManager.CreateAsync(user, registerDTO.Password);
if (!result.Succeeded)
{
return StatusCode(StatusCodes.Status409Conflict);
}
await userManager.AddToRoleAsync(user, Roles.User);
var newUser = await userManager.FindByEmailAsync(user.Email);
await userManager.SetEmailAsync(newUser, newUser.Email);
string message = await PrepareEmailContentAsync(newUser);
const string title = "Confirm your email";
await emailSender.SendEmailAsync(newUser.Email, title, message);
return Ok(new { username = user.UserName, email = user.Email, status = 1, message = "Registration Successful" });
}
catch (Exception e)
{
return StatusCode(StatusCodes.Status500InternalServerError, e);
}
}
Tak wygląda endpoint register a tak funkcja prepare:
private async Task<string> PrepareEmailContentAsync(ApplicationUser user)
{
var code = await userManager.GenerateEmailConfirmationTokenAsync(user);
var encodedCode = HttpUtility.UrlEncode(code);
var url = ??????
return string.Format("Please confirm your account by <a href =\"{0}\">clicking here</a>.", url);
}