Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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()));
        }