如何在 identityserver4+AspNetCode.Identity 中使用电子邮件 OTP 而不是身份验证器 TOTP
How to use email OTP instead of authenticator TOTP in identityserver4+AspNetCode.Identity
我发布这个是为了让其他人遇到同样的问题,因为我找不到任何在线文档。
问题:
使用https://github.com/skoruba/IdentityServer4.Admin(IdentityServer4,使用Microsoft.AspnetCore.Identity进行身份验证),如何更改默认的身份验证器TOTP并改用基于电子邮件的OTP?
在 AccountController 中找到以下行:
return RedirectToAction(nameof(LoginWith2fa), new { model.ReturnUrl, RememberMe = model.RememberLogin });
添加之前:
var code = await _userManager.GenerateTwoFactorTokenAsync(user, "Email");
_emailSender.SendEmailAsync(user.Email, "双因子代码", htmlEmail);
查找行:
var result = await _signInManager.TwoFactorAuthenticatorSignInAsync(authenticatorCode, model.RememberMe, model.RememberMachine);
将替换为:
var result = await _signInManager.TwoFactorSignInAsync("Email", authenticatorCode, model.RememberMe, model.RememberMachine);
我希望它能为别人省去一些麻烦。
我发布这个是为了让其他人遇到同样的问题,因为我找不到任何在线文档。
问题:
使用https://github.com/skoruba/IdentityServer4.Admin(IdentityServer4,使用Microsoft.AspnetCore.Identity进行身份验证),如何更改默认的身份验证器TOTP并改用基于电子邮件的OTP?
在 AccountController 中找到以下行:
return RedirectToAction(nameof(LoginWith2fa), new { model.ReturnUrl, RememberMe = model.RememberLogin });
添加之前:
var code = await _userManager.GenerateTwoFactorTokenAsync(user, "Email");
_emailSender.SendEmailAsync(user.Email, "双因子代码", htmlEmail);
查找行:
var result = await _signInManager.TwoFactorAuthenticatorSignInAsync(authenticatorCode, model.RememberMe, model.RememberMachine);
将替换为:
var result = await _signInManager.TwoFactorSignInAsync("Email", authenticatorCode, model.RememberMe, model.RememberMachine);
我希望它能为别人省去一些麻烦。