Пример #1
0
        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 }));
            }
        }
Пример #2
0
        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);
        }