学习jwt的简单使用

install-package jwt

        protected void ButtonLogin_Click(object sender, EventArgs e)
        {
            var secret = "abc123";
            var exp = (DateTime.UtcNow.AddSeconds(10) - new DateTime(1970, 1, 1)).TotalSeconds;
            var payload = new Dictionary<string, object> {
                {"Name",TextBoxName.Text },
                { "Pwd",TextBoxPwd.Text },
                { "exp",exp }
            };
            var algorithm = new HMACSHA256Algorithm();
            var jsonSerializer = new JsonNetSerializer();
            var urlEncoder = new JwtBase64UrlEncoder();
            var encoder = new JwtEncoder(algorithm, jsonSerializer, urlEncoder);
            var token = encoder.Encode(payload, secret);
            TextBox1.Text = token;
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            var secret = "abc123";
            var token = TextBox1.Text;
            try
            {
                var algorithm = new HMACSHA256Algorithm();
                var jsonSerializer = new JsonNetSerializer();
                var dateTimeProvider = new UtcDateTimeProvider();
                var jwtValidator = new JwtValidator(jsonSerializer, dateTimeProvider);
                var urlEncoder = new JwtBase64UrlEncoder();
                var decoder = new JwtDecoder(jsonSerializer, jwtValidator, urlEncoder, algorithm);
                var json = decoder.Decode(token, secret, true);
                Label1.Text = json;
            }
            catch (TokenExpiredException)
            {
                Label1.Text = "过期";
            }
            catch (SignatureVerificationException)
            {
                Label1.Text = "篡改";
            }
        }

原文地址:https://www.cnblogs.com/mmclog/p/14167826.html