Я использую userManager.ConfirmEmailAsync для подтверждения электронной почты, которую хочу проверить.
Недавно я сбросил настройки кодировку токена подтверждения, даже если я его удалю, я все равно получу недействительный токен.
Вот как я создал токен для подтверждения
Код: Выделить всё
var token = await _userManager.GenerateEmailConfirmationTokenAsync(newUser);
var confirmationLink = Url.Link("email-confirmation", new { token, inputUserModel.EmailUser });
Код: Выделить всё
[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 }));
}
P.S. _dataHelper.CriptEmail это созданный мною метод для мягкого кодирования электронной почты, что-то вроде (an\*\*\*\*@gmail.com)
Я ожидаю, что подтверждение сработает при правильном предложении.
Любая помощь принимается

Подробнее здесь: https://stackoverflow.com/questions/743 ... 6-identity