public async Task <ActionResult <EntidadeAutenticarViewModel> > GetInfo([FromBody] string token) { string secret = _token.Secret; var key = Encoding.ASCII.GetBytes(secret); var handler = new JwtSecurityTokenHandler(); var validations = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false }; var claims = handler.ValidateToken(token, validations, out var tokenSecure); var mecanico = await _mecanicoServico.ConsultarAsync(x => x.Login == claims.Identity.Name); var cliente = await _clienteServico.ConsultarAsync(x => x.Email == claims.Identity.Name); if (mecanico != null) { return(Ok(new EntidadeAutenticarViewModel() { Email = mecanico.Login, Nome = mecanico.Login, Autenticado = true, Senha = mecanico.Senha, Role = "Mecanico" })); } if (cliente != null) { return(Ok(new EntidadeAutenticarViewModel() { Email = cliente.Email, Nome = cliente.Nome, Senha = cliente.Senha, Role = "Cliente", Autenticado = true })); } else { return(NotFound()); } }
public async Task <EntidadeAutenticar> AutenticarUsuario(EntidadeAutenticar entidade) { var mecanico = await _mecanicoServico.ConsultarAsync(x => x.Login == entidade.Email && x.Senha == entidade.Senha); var cliente = await _clienteServico.ConsultarAsync(x => x.Email == entidade.Email && x.Senha == entidade.Senha); if (mecanico != null) { return(new EntidadeAutenticar() { Autenticado = true, Nome = entidade.Email, Email = entidade.Email, Senha = entidade.Senha, Role = "Mecanico" }); } else if (cliente != null) { return(new EntidadeAutenticar() { Autenticado = true, Nome = entidade.Email, Email = entidade.Email, Senha = entidade.Senha, Documento = cliente.CpfCnpj, Role = "Cliente" }); } else { return(new EntidadeAutenticar() { Autenticado = false }); } }