Exemplo n.º 1
0
        public async Task <IActionResult> LoginViaSmsCode(LoginViaCodeInputModel parameters)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values.SelectMany(state => state.Errors)
                                  .Select(error => error.ErrorMessage)
                                  .FirstOrDefault()));
            }

            var user = await _userManager.FindByPhoneNumberUniqueOrDefaultAsync(parameters.Key);

            if (user == null)
            {
                return(BadRequest("User does not exist"));
            }
            var singInResult = await _signInManager.CheckPasswordSignInAsync(user, parameters.Code, false);

            if (!singInResult.Succeeded)
            {
                return(BadRequest("Invalid password"));
            }

            await _signInManager.SignInAsync(user, parameters.RememberMe);

            return(Ok());
        }