using JWT; using JWT.Algorithms; using JWT.Serializers; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Web; namespace WX.CRM.WEB.Handler { public class JwtHelp { //私钥 web.config中配置 //"GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk"; private static string secret = ConfigurationManager.AppSettings["Secret"].ToString(); /// /// 生成JwtToken /// /// 不敏感的用户数据 /// public static string SetJwtEncode(Dictionary payload) { //格式如下 //var payload = new Dictionary //{ // { "username","admin" }, // { "pwd", "claim2-value" } //}; IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); var token = encoder.Encode(payload, secret); return token; } ///// ///// 根据jwtToken 获取实体 ///// ///// jwtToken ///// //public static UserInfo GetJwtDecode(string 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 userInfo = decoder.DecodeToObject(token, secret, verify: true);//token为之前生成的字符串 // return userInfo; //} } }