我在我的.NET Core项目中使用自定义JWT jose-jwt。 (我尝试的所有其他auth方法都让人困惑。)我已经实现了所有内容,但我不确定如何在每个请求上验证令牌。我的API中的大多数函数都需要这个auth,所以我想全局注册它并指定不所需的函数(基本上像[AllowAnonymous]
)。如果auth失败,我想要返回401。
我不需要为我编写完全代码,但我不确定如何编写并将其插入管道。我怎么能做到这一点?我是否正确地采取了这种方式?
答案 0 :(得分:2)
验证JWT就像验证基本身份验证请求一样。
答案 1 :(得分:2)
首先,您需要在JwtBearerAuthentication
方法中使用Configure
中间件。
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
Authority = ...,
Audience = ...
});
对于全局授权,请参阅MVC Core How to force / set global authorization for all actions?
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});