public HttpResponseMessage Register(TB_IB_USUARIO UserData)
        {
            try
            {
                Login        l = new Login();
                TokenService t = new TokenService();

                if (ModelState.IsValid && UserData != null)
                {
                    UserData.DS_SENHA = util.CalculateSHA1(UserData.DS_SENHA);

                    l.Register(UserData);
                    return(Request.CreateResponse(HttpStatusCode.OK, new { valid = true, message = "Cadastro realizado com sucesso!" }));
                }
                else
                {
                    List <string> Campos = new List <string>();
                    foreach (var keys in ModelState.Keys)
                    {
                        Campos.Add(keys.ToString());
                    }
                    return(Request.CreateResponse(HttpStatusCode.OK, new { valid = false, message = "Por favor preencha todos os campos!", campos = Campos, }));
                }
            }
            catch (Exception err)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { message = err }));
            }
        }
        public HttpResponseMessage doLogin(string DS_EMAIL, string DS_SENHA)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    DS_SENHA = util.CalculateSHA1(DS_SENHA);
                    TB_IB_USUARIO User = new TB_IB_USUARIO();
                    Login         l    = new Login();
                    TokenService  t    = new TokenService();
                    User = l.DoLogin(DS_EMAIL, DS_SENHA);

                    if (User != null)
                    {
                        string token = t.GenerateToken(User);
                        return(Request.CreateResponse(HttpStatusCode.OK, new { valid = true, userData = User, token }));
                    }

                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.OK, new { valid = false, message = "Usuário ou senha inválidos!" }));
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, new { valid = "Por favor preencha todos os campos!" }));
                }
            }
            catch (Exception err)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { message = err }));
            }
        }
        public string GenerateToken(TB_IB_USUARIO user)
        {
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(Settings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.DS_NOME.ToString()),
                }),
                Expires            = DateTime.UtcNow.AddHours(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }