【发布时间】:2019-09-26 19:27:25
【问题描述】:
我已经实现了 Bearer 身份验证,但我想在其中进行一些自定义操作。 我需要验证声明 token_id 是否使用数据库中的 token_id 签出。如果是,则请求应通过身份验证,否则应发回 401 响应。
【问题讨论】:
标签: c# asp.net .net asp.net-core asp.net-web-api
我已经实现了 Bearer 身份验证,但我想在其中进行一些自定义操作。 我需要验证声明 token_id 是否使用数据库中的 token_id 签出。如果是,则请求应通过身份验证,否则应发回 401 响应。
【问题讨论】:
标签: c# asp.net .net asp.net-core asp.net-web-api
为了验证不记名令牌,您可以自定义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;
}
};
});
【讨论】: