Как реализовать авторизацию otp в основном веб-интерфейсе asp.net? - PullRequest
0 голосов
/ 03 октября 2019

Я хочу авторизовать пользователей моего основного веб-API asp.net с помощью номера мобильного телефона только с Asp.NetCore Identity. Когда они попытаются войти с номером телефона, otp отправит на номер. Если они обеспечивают правильный otp, то будет сгенерирован токен. Я хочу использовать свой собственный sms api для отправки смс.

Вот мой код генерации токена. Этот метод вызывается после SignIn.

private string GenerateAuthToken(ApplicationUser user)
        {
            var claims = new List<Claim>
            {
                new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(ClaimTypes.NameIdentifier, user.Id)
            };

            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JwtKey"]));
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var expires = Utilities.StaticProperties.GetCurrentDateTime().AddDays(Convert.ToDouble(_configuration["JwtExpireDays"]));

            var token = new JwtSecurityToken(
                _configuration["JwtIssuer"],
                _configuration["JwtIssuer"],
                claims,
                expires: expires,
                signingCredentials: creds);

            var tokenString = new JwtSecurityTokenHandler().WriteToken(token);
            return tokenString;
        }
...