public async Task <RetornoAutenticacaoViewModel> Authenticate(LoginViewModel autenticacao) { ValidationResult _validationResult = new LoginValidation().Validate(autenticacao); if (!_validationResult.IsValid) { throw new ApiException(_validationResult.GetErrors(), ApiErrorCodes.MODNOTVALD); } SignInResult _signInResult = await _signInManager.PasswordSignInAsync(autenticacao.Email, autenticacao.Senha, isPersistent : true, lockoutOnFailure : true); if (!_signInResult.Succeeded) { if (_signInResult.IsLockedOut) { throw new ApiException(ApiErrorCodes.LCKLOG); } else if (_signInResult.IsNotAllowed) { throw new ApiException(ApiErrorCodes.NOTALLW); } else { throw new ApiException(ApiErrorCodes.INVUSPASS); } } Usuario _autenticacao = _repository.GetByUserName( autenticacao.Email, q => q .Include(i => i.Perfil)); string _generatedToken = GenerateTokenByAutenticacao(_autenticacao); return(new RetornoAutenticacaoViewModel(token: _generatedToken, isSenhaExpirada: _autenticacao.IsExpiredPassword(), usuarioId: _autenticacao.Id)); }