c# - ASP.NET Core web api 编辑 Bearer auth
问题描述
我已经实现了承载身份验证,但我想在其中进行一些自定义操作。我需要验证声明token_id 是否使用数据库中的token_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;
}
};
});
推荐阅读
- unity3d - Unity Scriptable Objects 问题
- r - R 的 testthat 中的 expect_error 函数与我的错误消息不匹配
- javascript - ACE 编辑器 js。使用自定义函数列表自动完成
- sql - 从选择查询结果中选择唯一行
- reactjs - 我正在尝试从下拉列表中获取的值中设置其他参数。但不显示值。我怎样才能显示它们
- google-sheets - 谷歌表格:日期列的条件格式,其中包含“T”。例如:“2020-03-21T15:17:47.000Z”
- django - 如何在 VPC 外部配置 Lambda 函数 (django) 以访问 VPC 内部的 Amazon ElastiCache?
- javascript - 根据屏幕大小为单个网站创建多个主页
- javascript - React Js 处理列上的事件按钮以使用 onClick 获取行
- javascript - ng-submit 按钮单击未调用 AngularJS 函数