Пример #1
0
        /// <summary>
        /// 解析token获取token信息
        /// </summary>
        /// <param name="token">token字符串</param>
        /// <returns>返回JWT对象字典
        /// var payload = new Dictionary<string, object>
        /// {
        ///     {ConstValue.SUB_KEY_NODE, userId},// 该JWT所面向的用户
        ///     {ConstValue.ISS_KEY_NODE, ISS_VALUE},//该JWT的签发者
        ///     {ConstValue.IAT_KEY_NODE, secondsSinceEpoch},//在什么时候签发的token
        ///     {ConstValue.EXP_KEY_NODE, secondsExp},// token什么时候过期
        ///     {ConstValue.NBF_KEY_NODE, secondsNbf},//token在此时间之前不能被接收处理
        ///     {ConstValue.JTI_KEY_NODE, JTI_VALUE}, //JWT ID为web token提供唯一标识
        ///     {ConstValue.ADMIN_KEY_NODE, bAdmin} //是否超级管理员
        ///};
        /// </returns>
        public static Dictionary <string, object> AnalyzeToken(string token)
        {
            if (string.IsNullOrEmpty(token))
            {
                throw new ApplicationException("没有token信息");
            }

            IJsonSerializer   serializer = new JsonNetSerializer();
            IDateTimeProvider provider   = new UtcDateTimeProvider();
            IJwtValidator     validator  = new JwtValidator(serializer, provider);
            IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
            IJwtDecoder       decoder    = new JwtDecoder(serializer, validator, urlEncoder);
            var json = decoder.Decode(token, TOKEN_SECRET, verify: true);

            if (string.IsNullOrEmpty(json))
            {
                throw new ApplicationException("token不正确");
            }
            //解析获得JSON对象
            return(JsonAppHelper.ToObject <Dictionary <string, object> >(json));
        }
Пример #2
0
        /// <summary>
        /// get方式提交 json  返回一个泛型对象
        /// </summary>
        /// <param name="Url">方法url 不需要全路径 只需要方法段路径</param>
        /// <param name="JSONData">传入的json信息</param>
        /// <returns></returns>
        public static T GetAPIByJsonToGeneric <T>(string Url)
        {
            string returnjson = GetWebAPIResponseData(Url, "get", ConstValue.DEFALUT_CONTENTTYPE, string.Empty);

            return(JsonAppHelper.ToObject <T>(returnjson));
        }
Пример #3
0
        /// <summary>
        /// post方式提交 json  返回一个泛型对象
        /// </summary>
        /// <param name="Url">方法url 不需要全路径 只需要方法段路径</param>
        /// <param name="JSONData">传入的json信息</param>
        /// <returns></returns>
        public static T PostAPIByJsonToGeneric <T>(string Url, string JSONData)
        {
            string returnjson = GetWebAPIResponseData(Url, "post", ConstValue.DEFALUT_CONTENTTYPE, JSONData);

            return(JsonAppHelper.ToObject <T>(returnjson));
        }
Пример #4
0
        /// <summary>
        /// delete方式提交 json 返回一个result对象
        /// </summary>
        /// <param name="Url">方法url 不需要全路径 只需要方法段路径</param>
        /// <returns></returns>
        public static KgmApiResultEntity DeleteToAPIByJsonToAPIResult(string Url)
        {
            string returnjson = GetWebAPIResponseData(Url, "delete", ConstValue.DEFALUT_CONTENTTYPE, string.Empty);

            return(JsonAppHelper.ToObject <KgmApiResultEntity>(returnjson));
        }
Пример #5
0
        /// <summary>
        /// post方式提交 json  返回一个result对象
        /// </summary>
        /// <param name="Url">方法url 不需要全路径 只需要方法段路径</param>
        /// <param name="JSONData">传入的json信息</param>
        /// <returns></returns>
        public static KgmApiResultEntity PostAPIByJsonToAPIResult(string Url, string JSONData)
        {
            string returnjson = GetWebAPIResponseData(Url, "post", ConstValue.DEFALUT_CONTENTTYPE, JSONData);

            return(JsonAppHelper.ToObject <KgmApiResultEntity>(returnjson));
        }