JWT-生成、校验、解析Token

引用System.IdentityModel.Tokens.Jwt

static void Main(string[] args)
        {
            //引用System.IdentityModel.Tokens.Jwt
            DateTime utcNow = DateTime.UtcNow;
            string key = "f47b558d-7654-458c-99f2-13b190ef0199";
            SecurityKey securityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(key));

            var claims = new List<Claim>() {
                new Claim("ID","1"),
                new Claim("Name","fan")            
            };
            JwtSecurityToken jwtToken = new JwtSecurityToken(
                issuer:"fan",
                audience:"audi~~!",
                claims: claims,
                notBefore: utcNow,
                expires:utcNow.AddYears(-1),
                signingCredentials:new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256)
                );

            //生成token
           string token = new JwtSecurityTokenHandler().WriteToken(jwtToken);

            //校验token
            var validateParameter = new TokenValidationParameters() {
                ValidateLifetime = true,
                ValidateAudience = true,
                ValidateIssuer = true,
                ValidateIssuerSigningKey = true,
                ValidIssuer = "fan",
                ValidAudience = "audi~~!",
                IssuerSigningKey = securityKey,
            };
            var claimsPrincipal = new JwtSecurityTokenHandler().ValidateToken(token, validateParameter, out SecurityToken validated);

            //解析token
            jwtToken = new JwtSecurityTokenHandler().ReadJwtToken(token);

        }

猜你喜欢

转载自www.cnblogs.com/fanfan-90/p/12911203.html
今日推荐