/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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)); }