.NET JWT集成


之前也写过一篇jwt集成教程,再写一篇是因为我自己觉得那一篇废话有些多,所以想重新写一篇
1.首先引入包:System.IdentityModel.Tokens.Jwt
2.创建一个JwtExtensions扩展类
3.代码如下:
根据当前用户登录名生成对应的token
时间自行定义,也可以直接写在appsetting中,具体请翻阅文档

点击查看代码
        /// 
        /// 创建token
        /// 
        /// 用户登录名
        /// key
        /// 密钥名
        /// token有效时间
        /// 
        public static string CreateToken(string userName, string jwtSecurityKey, string jwtKeyName, DateTime expirs)
        {
            //Claim证件
            var claims = new List();
            claims.Add(new Claim(ClaimTypes.Name, id));
            //根据jwt key获取密钥
            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSecurityKey)); // 获取密钥
            //根据密钥生成凭证
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); //凭证 ,根据密钥生成
                                                                                    
            var token = new JwtSecurityToken(
                issuer: jwtKeyName,
                audience: jwtKeyName,
                claims: claims,
                expires: expirs,
                signingCredentials: creds
            );

            return new JwtSecurityTokenHandler().WriteToken(token);
        }
appsetting.json
"JwtConfig": {
    "JwtKeyName": "JwtKey",
    "JwtSecurityKey": "1CC7121212121212"
  }
4.创建一个测试方法,进行测试,发现生成token成功

这里埋了一个坑,密钥keyname不能太少,会报错,仔细看代码就会发现错误