/// <summary> /// 获取令牌 /// </summary> /// <returns></returns> public string GetToken(string userName, string targetAppName) { //第一部分我们称它为头部(header) //第二部分我们称其为载荷(payload) //第三部分是签证(signature) // javascript //var encodedString = base64UrlEncode(header) + '.' + base64UrlEncode(payload); //var signature = HMACSHA256(encodedString, 'secret'); IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder); //头部、载荷(Playload)与签名。 Playload playload = new Playload(userName, targetAppName); var token = encoder.Encode(playload, SecretKey); return(token); }
public string CreateToken(string userName, string targetAppName) { //第一部分我们称它为头部(header) //第二部分我们称其为载荷(payload) //第三部分是签证(signature) // javascript //var encodedString = base64UrlEncode(header) + '.' + base64UrlEncode(payload); //var signature = HMACSHA256(encodedString, 'secret'); IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSerializer(); IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder(); //头部 Dictionary <string, string> headDic = new Dictionary <string, string>(); headDic.Add("typ", "JWT"); headDic.Add("alg", "HS256"); byte[] headBytes = Encoding.UTF8.GetBytes(serializer.Serialize(headDic)); string head = urlEncoder.Encode(headBytes); //载荷 Playload playload = new Playload(userName, targetAppName); byte[] pyloadBytes = Encoding.UTF8.GetBytes(serializer.Serialize(playload)); string pyload = urlEncoder.Encode(pyloadBytes); List <string> list = new List <string>(3); list.Add(head); list.Add(pyload); //签名 byte[] mergeBytes = Encoding.UTF8.GetBytes(string.Join(".", list.ToArray())); string sign = urlEncoder.Encode(algorithm.Sign(Encoding.UTF8.GetBytes(SecretKey), mergeBytes)); list.Add(sign); return(string.Join(".", list.ToArray())); }