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