在AddAuthentication身份验证功能中,发生了以下几个步骤:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "your_issuer",
ValidAudience = "your_audience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your_secret_key"))
};
});
// Add other services
// ...
}
在上述代码中,我们使用AddJwtBearer方法来配置JWT令牌验证。我们可以设置TokenValidationParameters来指定验证规则。这些规则包括验证发行人(Issuer)、受众(Audience)、令牌有效期和签名密钥。
一旦身份验证服务配置完成,我们可以在需要进行身份验证的控制器或路由上应用[Authorize]属性。这将确保只有经过身份验证的用户才能访问相关资源。
[Authorize]
public class MyController : Controller
{
// Controller actions
// ...
}
这就是AddAuthentication身份验证功能中发生的事情。通过配置TokenValidationParameters来指定验证规则,中间件将自动验证访问令牌的有效性。