//======================================================================================================
        public async Task <string> GeneratePhoneNumberTokenAsync(ApplicationUser _User)
        {
            PhoneNumberTokenProvider <ApplicationUser> phoneNumberTokenProvider = new PhoneNumberTokenProvider <ApplicationUser>();
            var token = await phoneNumberTokenProvider.GenerateAsync("ResetPassword", _userManager, _User);

            return(token);
        }
Beispiel #2
0
 private async Task<(string VerifyToken, bool Result)> SendSmsRequet(PhoneLoginViewModel model,
     ApplicationUser user)
 {
     var verifyToken = await _phoneNumberTokenProvider.GenerateAsync("verify_number", _userManager, user);
     var result =
         await _smsService.SendAsync(model.PhoneNumber, $"Your login verification code is: {verifyToken}");
     return (verifyToken, result);
 }
        async Task <(string VerifyToken, bool Result)> SendSmsRequet(PhoneLoginViewModel model, UserIdentity user)
        {
            var verifyToken = await _phoneNumberTokenProvider.GenerateAsync(TokenPurpose.MobilePasswordAuth, _userManager, user);

            var sms = $"<#>{Environment.NewLine}Your OTP Code is:{verifyToken}{Environment.NewLine}[{model.AppHash}]";

            var result = await _smsService.SendAsync(model.PhoneNumber, sms);

            return(verifyToken, result);
        }
        public async Task <IActionResult> Post([FromBody] PhoneLoginViewModel loginViewModel)
        {
            var user = await GetUser(loginViewModel);

            var resendToken = await _dataProtectorTokenProvider.GenerateAsync("resend_token", _userManager, user);

            var token = await _phoneNumberTokenProvider.GenerateAsync("verify_number", _userManager, user);

            var success = await _smsService.SendAsync(loginViewModel.PhoneNumber, $"Your Autostop verification code is: {token}");

            var result = new Dictionary <string, string> {
                { "resend_token", resendToken }
            };

            return(success ? (IActionResult)Accepted(result) : BadRequest());
        }
Beispiel #5
0
        public async Task <ApplicationUser> SendVerificationCodeAsync(string key, string phoneNumber)
        {
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentException(nameof(key));
            }

            if (string.IsNullOrEmpty(phoneNumber))
            {
                throw new ArgumentException(nameof(phoneNumber));
            }

            var user = await GetUserByPhoneAsync(phoneNumber);

            var verifyToken = await _phoneNumberTokenProvider
                              .GenerateAsync($"{PhoneNumberVerificationPurpose}-{key}", _userManager, user);

            await DoSendVerificationCodeAsync(phoneNumber, verifyToken);

            return(user);
        }