小编the*_*ynt的帖子

ASP.NET Core IdentityGenerateTwoFactorTokenAsync 返回空字符串

应用程序是.NET Core 2.1。

我正在使用 Twilio 在我的网站中实现 SMS 双因素身份验证(已经有基于应用程序的 tfa),一切都准备就绪,但存在无法生成令牌的小问题。

当用户首先输入手机号码来设置 TFA 时,我调用以下代码。只需生成一个代码并将其发短信给他们即可。但调用_userManager.GenerateTwoFactorTokenAsync返回一个空字符串。从源代码来看,这是硬编码的。有用。

我希望使用它,这样我就可以使用与基于应用程序的 tfa 相同的验证流程。那么我应该使用什么函数来生成要发送给用户的 tfa 令牌?或者我处理这个问题的方式不正确?

编辑:根据我自己的挖掘,也许我应该使用更改电话号码令牌来进行此初始设置。但问题就变成了,登录时实际的 tfa 流程应该使用什么?

  [Authorize]
  [HttpPost("send-sms")]
  public async Task<IActionResult> SendSms(SMSModel input)
  {
     var user = await _userManager.GetUserAsync(User);

     if (String.IsNullOrWhiteSpace(_smsOptions.Sid) || String.IsNullOrWhiteSpace(_smsOptions.Token)) {
        ModelState.AddModelError("phoneNumber", "SMS provider not set up.");
        return BadRequest(ModelState);
     }

     var code = await _userManager.GenerateTwoFactorTokenAsync(user, _userManager.Options.Tokens.AuthenticatorTokenProvider);
     var message = "Your one-time verification code is: " + code;

     TwilioClient.Init(_smsOptions.Sid, _smsOptions.Token);
     try {
        var result = await MessageResource.CreateAsync(
           to: new PhoneNumber(input.phone),
           from: new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-identity .net-core asp.net-core

8
推荐指数
2
解决办法
6395
查看次数

标签 统计

.net-core ×1

asp.net-core ×1

asp.net-identity ×1

c# ×1