- 确保在Startup.cs中启用身份验证和授权,并配置正确的身份验证方案和令牌验证选项
//启用身份验证
services.AddAuthentication(options =>
{
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
}
)
//配置令牌验证选项
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "yourIssuer",
ValidAudience = "yourAudience",
ClockSkew = TimeSpan.Zero,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("yourSecretKey")),
};
});
- 添加授权策略以允许授权令牌访问API控制器
//添加授权策略
services.AddAuthorization(options =>
{
options.AddPolicy("Bearer", policy =>
{
policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme);
policy.RequireAuthenticatedUser();
});
});
- 在API控制器的Action上使用[Authorize]特性,指定授权策略
//在Action上添加[Authorize]特性
[Authorize(Policy = "Bearer")]
[HttpGet]
public IActionResult MyApiAction()
{
....
}