public Usuariovinculado BuscarPorEmailESenha(UsuarioViewModel login)
 {
     using (EkipsContext ctx = new EkipsContext())
     {
         //PERMISSÃO -idpermissaõ
         Usuariovinculado usuario = ctx.Usuariovinculado.Include(x => x.IdpermissaoNavigation).FirstOrDefault(
             x => x.Email == login.Email && x.Senha == login.Senha);
         if (usuario == null)
         {
             return(null);
         }
         return(usuario);
     }
 }
Пример #2
0
        public IActionResult Login(UsuarioViewModel login)
        {
            try
            {
                Usuariovinculado usuariovinculadoBuscado = UsuariovinculadoRepository.BuscarPorEmailESenha(login);
                if (usuariovinculadoBuscado == null)
                {
                    return(NotFound(new { mensagem = "Môhhhh senha incorretahh!" }));
                }

                var claims = new[]
                {
                    // chave customizada
                    new Claim("chave", "0123456789"),
                    new Claim("mari", "AgoraFoi"),
                    // email
                    new Claim(JwtRegisteredClaimNames.Email, usuariovinculadoBuscado.Email),
                    // id
                    new Claim(JwtRegisteredClaimNames.Jti, usuariovinculadoBuscado.Idusuariovinculado.ToString()),
                    // permissao
                    new Claim(ClaimTypes.Role, usuariovinculadoBuscado.IdpermissaoNavigation.Permissao1),
                };

                var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("gufos-chave-autenticacao"));

                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken(
                    issuer: "Ekips.WebApi",
                    audience: "Ekips.WebApi",
                    claims: claims,
                    expires: DateTime.Now.AddMinutes(30),
                    signingCredentials: creds);

                return(Ok(new
                {
                    token = new JwtSecurityTokenHandler().WriteToken(token)
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new { mensagem = "Erro ao cadastrar." + ex.Message }));
            }
        }