C# ASP.NET核心web api编辑承载身份验证
我已经实现了Bearer auth,但是我想在其中进行一些自定义操作。C# ASP.NET核心web api编辑承载身份验证,c#,asp.net,.net,asp.net-core,asp.net-web-api,C#,Asp.net,.net,Asp.net Core,Asp.net Web Api,我已经实现了Bearer auth,但是我想在其中进行一些自定义操作。 我需要验证声明令牌\u id是否与数据库中的令牌\u id签出。如果是这样,请求应该通过身份验证,在另一种情况下,401响应应该被发回。要验证承载令牌,您可以自定义OnTokenValidated类似 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => {
我需要验证声明令牌\u id是否与数据库中的令牌\u id签出。如果是这样,请求应该通过身份验证,在另一种情况下,401响应应该被发回。要验证承载令牌,您可以自定义
OnTokenValidated
类似
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Events = new JwtBearerEvents {
OnTokenValidated = async context =>
{
var accessToken = context.SecurityToken as JwtSecurityToken;
var dbContext = services.BuildServiceProvider().CreateScope().ServiceProvider.GetRequiredService<ApplicationDbContext>();
var tags = await dbContext.Tags.ToListAsync();
context.Fail("Token is invalid");
return;
}
};
});
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(选项=>
{
options.Events=newjwtbearerevents{
OnTokenValidated=异步上下文=>
{
var accessToken=context.SecurityToken作为JwtSecurityToken;
var dbContext=services.BuildServiceProvider().CreateScope().ServiceProvider.GetRequiredService();
var tags=await dbContext.tags.ToListAsync();
context.Fail(“令牌无效”);
返回;
}
};
});
谢谢!这正是我想要的!:-)