private async Task <IActionResult> TratarSignInResult(SignInResult result, CredenciaisDto credenciais)
        {
            if (result.Succeeded)
            {
                return(Ok(loginServico.GerarToken(credenciais.NomeUsuario)));
            }

            if (result.IsLockedOut)
            {
                return(await TratarLockout(credenciais.NomeUsuario, credenciais.Senha));
            }

            return(Unauthorized());
        }
        public async Task <IActionResult> Autenticar(CredenciaisDto credenciais)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ErroRespostaDto.Para(ModelState)));
            }

            if (!await usuarioServico.EhUsuarioValidoAsync(credenciais.NomeUsuario))
            {
                return(NotFound(ErroRespostaDto.ParaNotFound(credenciais.NomeUsuario)));
            }

            var result = await loginServico.AutenticarAsync(credenciais);

            return(await TratarSignInResult(result, credenciais));
        }
 public async Task <SignInResult> AutenticarAsync(CredenciaisDto credenciais)
 {
     return(await signInManager.PasswordSignInAsync(credenciais.NomeUsuario, credenciais.Senha, false, true));
 }