private string GetJWTToken(MUserTokenClaimsClass userTokenClaims)
        {
            SigningCredentials credentials;
            {
                byte[] bytes = System.Text.Encoding.ASCII.GetBytes(GlobalData.Current.Jwt["Key"]); // SecureStringWrapper(KeysJWT[userInfo.AppID]))
                credentials = new SigningCredentials(new SymmetricSecurityKey(bytes), SecurityAlgorithms.HmacSha256Signature);
            }
            JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
            List <Claim>            listClaims   = userTokenClaims.GetType()
                                                   .GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public)
                                                   .Where(x => x.Name != "Roles")
                                                   .Select(x => {
                string typeOfData = ClaimValueTypes.String;
                switch (x.PropertyType.Name)
                {
                case "String": typeOfData = ClaimValueTypes.String; break;

                case "Int32": typeOfData = ClaimValueTypes.Integer32; break;

                case "Boolean": typeOfData = ClaimValueTypes.Boolean; break;

                default: typeOfData = ClaimValueTypes.String; break;
                }
                return(new Claim(x.Name, Convert.ToString(x.GetValue(userTokenClaims)), typeOfData));
            }).ToList();

            foreach (string x in userTokenClaims.Roles)
            {
                listClaims.Add(new Claim("Roles", x, ClaimValueTypes.String));
            }
            SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor {
                Subject            = new ClaimsIdentity(listClaims),
                Issuer             = GlobalData.Current.Jwt["Issuer"],
                Expires            = DateTime.UtcNow.AddDays(1),
                Audience           = GlobalData.Current.Jwt["Audience"],
                SigningCredentials = credentials
            };

            SecurityToken sectoken = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(sectoken));
        }