【问题标题】:How to use email OTP instead of authenticator TOTP in identityserver4+AspNetCode.Identity如何在 identityserver4+AspNetCode.Identity 中使用电子邮件 OTP 而不是身份验证器 TOTP
【发布时间】:2022-01-08 21:53:28
【问题描述】:
【问题讨论】:
标签:
asp.net-identity
identityserver4
【解决方案1】:
-
在 AccountController 中找到以下行:
return RedirectToAction(nameof(LoginWith2fa), new { model.ReturnUrl, RememberMe = model.RememberLogin });
-
添加之前:
var code = await _userManager.GenerateTwoFactorTokenAsync(user, "Email");
_emailSender.SendEmailAsync(user.Email, "TwoFactor code", htmlEmail);
-
找线:
var 结果 = await _signInManager.TwoFactorAuthenticatorSignInAsync(authenticatorCode, model.RememberMe, model.RememberMachine);
-
替换为:
var result = await _signInManager.TwoFactorSignInAsync("Email", authenticationatorCode, model.RememberMe, model.RememberMachine);
我希望它可以为某人省去一些麻烦。