public async Task <PessoaJwt> LoginPessoa(PessoaLogin pessoa, IToken token) { if (pessoa.Login.Length >= 11) { if (!ValidaCPF.ValidarCPF(pessoa.Login)) { throw new Exception("CPF inválido !"); } } var pessoaLogada = await repositorio.BuscarLoginSenha(pessoa.Login, pessoa.Senha); if (pessoaLogada == null) { throw new Exception("Usuario e Login invalidos"); } return(new PessoaJwt() { Id = pessoaLogada.Id, Name = pessoaLogada.Nome, Documento = pessoaLogada.Documento, Tipo = pessoaLogada.Tipo.ToString(), Token = token.GerarToken(pessoaLogada) }); }
public TokenDTO Login(LoginDTO Usuario) { TokenDTO Retorno = new TokenDTO(); if (Usuario.Operador) { int Matricula; try { Matricula = Convert.ToInt32(Usuario.Login); } catch { throw new Exception($"O login informado: {Usuario.Login} não é uma matrícula de operador válida."); } Operadores Operador = this._operadoresRepositorio.GetByLogin(Matricula); if (Operador == null) { throw new Exception($"O login informado: {Usuario.Login} não existe."); } bool ValidaSenha = Operador.Senha.Equals(MD5Hash.GerarHashMd5(Usuario.Senha)); if (!ValidaSenha) { throw new Exception($"A senha para login informado: {Usuario.Login} não corresponde."); } Tuple <string, DateTime> Token = GerarToken(new UsuarioDTO { Nome = Operador.Nome, Perfil = "Operador" }); Retorno.Usuario = Operador.Nome; Retorno.Perfil = "Operador"; Retorno.Token = Token.Item1; Retorno.Expiracao = Token.Item2; } else { if (!ValidaCPF.ValidarCPF(Usuario.Login)) { throw new Exception($"O login informado: {Usuario.Login} não é um CPF de cliente válido."); } Clientes Cliente = this._clientesRepositorio.GetByCpf(Usuario.Login); if (Cliente == null) { throw new Exception($"O cliente informado: {Usuario.Login} não existe."); } bool ValidaSenha = Cliente.Senha.Equals(MD5Hash.GerarHashMd5(Usuario.Senha)); if (!ValidaSenha) { throw new Exception($"A senha para o cliente informado: {Usuario.Login} não corresponde."); } Tuple <string, DateTime> Token = GerarToken(new UsuarioDTO { Nome = Cliente.Nome, Perfil = "Cliente" }); Retorno.Usuario = Cliente.Nome; Retorno.Perfil = "Cliente"; Retorno.Token = Token.Item1; Retorno.Expiracao = Token.Item2; } return(Retorno); }