Как сделать 2-ую аутентификацию с помощью email и набора цифр (без ссылок)

public async Task<IActionResult> Register(RegisterModel model, string returnUrl = null) 
    {
        ViewData["ReturnUrl"] = returnUrl;
        if (ModelState.IsValid)
        {
            var user = new User { UserName = model.Email, Email = model.Email };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {

                // code = "AgvdHSD734BHD...Bd/jd..." а нужно "634973"
                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                await _emailSender.SendEmailAsync(model.Email, "Ваш код подтверждения", code);

                await _signInManager.SignInAsync(user, isPersistent: false);

                return RedirectToAction("ConfirmEmail");
            }
            AddErrors(result);
        }
        return View(model);
    }

В общем нужно, чтобы в email отправлялся код с подтверждение что то вроде "383534" а не куча непонятных символов.

Есть ли какой-то нормальный метод который генерирует токен c цифрами (токен должен быть на email).

Например, есть такой метод для Создания телефона вот он генерирует код. _userManager.GenerateChangePhoneNumberToken


Ответы (1 шт):

Автор решения: eduard.working
var code = await _userManager.GenerateTwoFactorTokenAsync(
    user, TokenOptions.DefaultEmailProvider);

//TokenOptions.DefaultEmailProvider - "Email"

Генерируется маленький код подтверждения, например: "466546".

→ Ссылка