ASP.NET Core 中 JWT 身份验证核心是配置 Authentication 与 Authorization 中间件,流程为登录发 Token → 请求带 Token → 中间件自动校验 → 控制器用 [Authorize] 限定访问;需正确注册 JWT Bearer 服务、生成 Token 并设置密钥、签发者等参数,保护接口时结合角色或策略授权,并确保前端请求携带格式正确的 Authorization: Bearer Token 头。

ASP.NET Core 中使用 JWT 进行身份验证和授权,核心是配置 Authentication 和 Authorization 中间件,并正确颁发、验证 Token。关键不在于写多少代码,而在于理解流程:登录发 Token → 请求带 Token → 中间件自动校验 → 控制器用 [Authorize] 限定访问。
启用 JWT 身份验证服务
在 Program.cs(.NET 6+)中注册 JWT Bearer 验证服务,需提供密钥、签发者、受众等基础参数:
- 密钥必须是至少 256 位的对称密钥(如
new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your-32-byte-secret-key-here"))) - 指定
ValidateIssuer、ValidateAudience等为true时,Token 中必须包含匹配的iss和aud字段 - 设置
ClockSkew可放宽 Token 过期时间容错(默认 5 分钟,设为TimeSpan.Zero表示严格校验)
生成并返回 JWT Token
在登录接口(如 POST /api/auth/login)中,验证用户名密码后手动创建 Token:
- 用
ClaimsIdentity或直接构建Claim[]数组,例如new Claim(ClaimTypes.Name, user.Username)、new Claim("role", "admin") - 使用
JwtSecurityTokenHandler创建 Token 对象,设置有效期(Expires)、签名凭证(SigningCredentials) - 调用
WriteToken()得到字符串,通常以 JSON 形式返回:{ "token": "xxx.yyy.zzz" }
保护 API 接口与角色/策略授权
加 [Authorize] 特性即可启用验证;进一步控制权限可结合角色或自定义策略:
标签: js 前端 json iis curl ai .net yy red
还木有评论哦,快来抢沙发吧~