Ejemplo n.º 1
0
        public async Task <IActionResult> GetToken([FromBody] LoginViewModel loginViewModel)
        {
            if (!ModelState.IsValid)
            {
                NotifyModelStateErrors();
                return(ResponseBadRequest());
            }

            var user = _mapper.Map <User>(loginViewModel);

            var userIdentity = await _accessManager.GetUserByUsername(user.UserName);

            if (userIdentity != null)
            {
                var resultLogin = await _accessManager.ValidateCredentials(userIdentity, user.PasswordHash);

                if (resultLogin.Succeeded)
                {
                    var token = await _accessManager.GenerateToken(userIdentity);

                    return(Response(token));
                }
                if (resultLogin.IsLockedOut)
                {
                    NotifyError("user", $"User is locked out");
                    return(ResponseBadRequest());
                }
            }
            NotifyError("user", $"Username or password is incorrect.");
            return(ResponseBadRequest());
        }