Я использую UserManager.ConfirmeMailAsync для подтверждения электронного письма, которое я хочу проверить,
Недавно я не установил кодирование токена подтверждения, даже если я удаляю, я все еще получаю инвалидный токен.
Код: Выделить всё
var token = await _userManager.GenerateEmailConfirmationTokenAsync(newUser);
var confirmationLink = Url.Link("email-confirmation", new { token, inputUserModel.EmailUser });
< /code>
И это для получения токена < /p>
[HttpPost]
[AllowAnonymous]
[Route("ConfirmEmail")]
public async Task ConfirmEmail(string token, string email)
{
if (token == null || email == null) return StatusCode(406, new { message = "You need to provide the informations", DateTime.Now });
var emailController = new EmailAddressAttribute();
if (!emailController.IsValid(email)) return StatusCode(406, new { message = "The information provided is not an email address.", DateTime.Now });
var user = await _userManager.FindByEmailAsync(email);
if (user == null) return NotFound( new { message = "The email you provide is not assigned to any users.", DateTime.Now });
if (await _userManager.IsEmailConfirmedAsync(user)) return StatusCode(401, new { message = "Your email is already confirmed", DateTime.Now });
var result = await _userManager.ConfirmEmailAsync(user, token);
if (result.Succeeded)
{
user.EmailConfirmed = true;
await _userManager.UpdateAsync(user);
}
return (result.Succeeded ? Ok(new { message = $"the {_dataHelper.CriptEmail(email)} is been confirmed.", DateTime.Now }) : NotFound(new { message = "The token you provide was not found.", DateTime.Now }));
}
< /code>
Скажите, если вам нужно что -то еще. < /p>
p.s. _dataHelper.cripteMail
Я ожидаю, что подтверждение работает по правильному предложению.
>
Подробнее здесь: https://stackoverflow.com/questions/743 ... 6-identity