Authentication 扩展基于SMS OTP登录的标识
我一直在尝试使用asp.net核心身份实现,使用SMS OTP为我的应用程序执行一次性注册验证和每日登录 它是一次性令牌,如果不使用,将在15分钟后过期 用户应再次请求,以防其过期或丢失 在四处搜索时,所有的实现都提供了关于MFA或基于Google Authenticator的验证的详细信息,这两种情况略有不同 令牌不会由服务器生成,也不会由Authenticator应用生成 我需要存储令牌及其在时间上的版本 令牌将是6位数字的SMS 该场景更类似于Authentication 扩展基于SMS OTP登录的标识,authentication,.net-core,asp.net-identity,Authentication,.net Core,Asp.net Identity,我一直在尝试使用asp.net核心身份实现,使用SMS OTP为我的应用程序执行一次性注册验证和每日登录 它是一次性令牌,如果不使用,将在15分钟后过期 用户应再次请求,以防其过期或丢失 在四处搜索时,所有的实现都提供了关于MFA或基于Google Authenticator的验证的详细信息,这两种情况略有不同 令牌不会由服务器生成,也不会由Authenticator应用生成 我需要存储令牌及其在时间上的版本 令牌将是6位数字的SMS 该场景更类似于无密码身份验证,但在这种情况下,没有存储令牌,
无密码身份验证
,但在这种情况下,没有存储令牌,我需要将其有效存储,不确定如何扩展.net核心标识以满足上述要求
这是相当标准的电话号码认证方式
我知道这不是一个标准的SO格式,但我不知道从哪里开始我知道这是一个老问题,但我发现自己在这里遇到了同样的问题,关于这一点的信息令人惊讶地稀少。可能正如微软建议使用(2FA)验证器应用程序一样,使用基于时间的一次性密码算法(TOTP),而不是带有短信/电子邮件的OTP 并非预期用途,但以下内容将允许您生成并保存一个有时间限制(3分钟)的6位OTP,将其与用户关联,然后使用ASP.NET Core Identity对其进行验证 GenerateChangePhoneNumberTokenAsync
var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, model.PhoneNumber);
bool valid = await _userManager.VerifyChangePhoneNumberTokenAsync(user, code, model.PhoneNumber);
及
验证ChangePhoneNumberTokenAsync
var code = await _userManager.GenerateChangePhoneNumberTokenAsync(user, model.PhoneNumber);
bool valid = await _userManager.VerifyChangePhoneNumberTokenAsync(user, code, model.PhoneNumber);
这可以在Erik&paulsm4发布的文档中看到 代码的链接 指向实现此功能的控制器的链接
。。您所谈论的似乎是双因素身份验证(2FA)。听起来您需要使用.NETCore(大概是2.x或3.x)进行“一次性密码”身份验证。您没有指定特定的实现。一个简单的谷歌搜索出现了几个点击率,包括,@ErikPhilips。我现在看到的是使用短信OTP登录,而不是密码。非常感谢。。真的很高兴有一个解决方案。。。我从未想过我可以使用
GenerateChangePhoneNumberTokenAsync
生成登录令牌,但作为一种解决方法,这仍然可以。