public IResultadoComando Manipular(AutenticarFuncionarioComando comando) { var usuario = _repositorio.UsuarioExiste(comando.Email); if (usuario == null) { AddNotification("Email", "Ocorreu um erro na autenticação"); return(new ResultadoComando( false, "Ocorreu um erro na autenticação", new { mensagem = "Usuário não existe" })); } if (usuario.Autenticar(comando.Email, comando.Senha)) { return(new ResultadoComando( true, "Logado com sucesso", new { Usuario = usuario, Token = ServicoToken.GerarToken(usuario) })); // Verificar no frontend a necessidade de retornar o usuario completo } else { AddNotification("Email", "Ocorreu um erro na autenticação"); return(new ResultadoComando( false, "Ocorreu um erro na autenticação", new { erro = comando.Notifications })); } }
public ActionResult <dynamic> Autenticar([FromBody] FuncionarioLoginDTO user, [FromServices] IConfiguration configuration) { Funcionario funcionarioLogin = null; string token = ""; try { funcionarioLogin = ValidarAcessoUsuario(user); if (funcionarioLogin == null) { return(StatusCode((int)HttpStatusCode.Unauthorized, "Usuário ou/e senha inválida(s)")); } token = ServicoToken.GerarToken(funcionarioLogin, configuration); } catch (Exception ex) { var msgErro = $"{MSG_ERRO_SERVIDOR}{ex.Message} {ex?.InnerException?.Message}"; return(StatusCode((int)HttpStatusCode.InternalServerError, msgErro)); } funcionarioLogin.Senha = ""; return(new { funcionarioLogin = funcionarioLogin, token = token, dataHora = DateTime.Now }); }
public async Task <ActionResult <UsuarioDto> > Autenticar([FromBody] Usuario model) { var usuario = await _context.Usuarios .AsNoTracking() .Where(usr => usr.Nome == model.Nome && usr.Senha == model.Senha) .FirstOrDefaultAsync(); if (usuario == null) { return(NotFound("Usuário inválido")); } var token = ServicoToken.GerarToken(usuario); var usuarioDto = _mapper.Map <UsuarioDto>(usuario); usuarioDto.Token = token; return(usuarioDto); }