gpt4 book ai didi

c# - 如何在 aspnet.core web api 中验证 JWT token ?

转载 作者:太空狗 更新时间:2023-10-29 23:28:33 26 4
gpt4 key购买 nike

我创建了自定义中间件类来验证 JWT token 。我在配置方法中的 app.AddMvc() 之前调用此方法。 ***

我想知道应该向配置服务添加哪些内容以使用 JWT 验证我的 Web API?我在我的 Controller 类中添加了 [Authorize]

我是否需要在 Configure 方法中调用首先验证 JWT token 的中间件类?或者我应该调用 App.UseAuthentication()我正在使用以下顺序:

 app.UseAuthentication();
app.MessageHandlerMiddleware();
app.UseMvc();

我是 .net Web API 实现的新手。你能帮帮我吗?

最佳答案

来自 one of my answers您可以看到我们如何传递 JWT token 以及代码如何查找经典 .NET(非核心)ASP.NET WebAPI 2。

区别不大,ASP.NET Core 的代码看起来很相似。

关键方面是 - 当您在 Startup 中添加 JWT 配置时,应用会自动处理验证

services
.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuerSigningKey = true,
ValidateLifetime = true,
IssuerSigningKey = _configuration.GetSymmetricSecurityKey(),
ValidAudience = _configuration.GetValidAudience(),
ValidIssuer = _configuration.GetValidIssuer()
};
});

(使用上面的链接查看 GetSymmetricSecurityKeyGetValidAudienceGetValidIssuer 扩展方法的实现)

也是很重要的部分:

services.AddAuthorization(auth =>
{
auth
.AddPolicy(
_configuration.GetDefaultPolicy(),
new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme‌​)
.RequireAuthenticatedUser().Build()
);
});

关于c# - 如何在 aspnet.core web api 中验证 JWT token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com