【问题标题】:ASP.NET Core web api editing Bearer authASP.NET Core web api 编辑 Bearer auth
【发布时间】:2019-09-26 19:27:25
【问题描述】:

我已经实现了 Bearer 身份验证,但我想在其中进行一些自定义操作。 我需要验证声明 token_id 是否使用数据库中的 token_id 签出。如果是,则请求应通过身份验证,否则应发回 401 响应。

【问题讨论】:

标签: c# asp.net .net asp.net-core asp.net-web-api


【解决方案1】:

为了验证不记名令牌,您可以自定义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;
            }
        };
    });

【讨论】:

  • 谢谢!这正是我一直在寻找的! :-)
猜你喜欢
  • 2017-02-07
  • 2020-08-22
  • 1970-01-01
  • 2018-12-07
  • 2018-07-14
  • 2019-06-21
  • 2020-08-29
  • 2019-12-12
  • 1970-01-01
相关资源
最近更新 更多