【发布时间】:2019-11-06 22:42:42
【问题描述】:
我有 Asp.Net Core 2.2 MVC Web 应用程序,其中通过 Asp.Net Core Web Api 2.2 处理数据库调用,此 Web API 将生成 JWT 令牌发布验证登录凭据并返回到 MVC 应用程序JWT 令牌。
在用 Authorize 属性装饰的 Asp.Net 核心 MVC 应用程序控制器中,以验证来自浏览器的后续请求,但在这里我无法验证 JWT 令牌。
所以请建议如何在 Asp.Net Core 2.2 MVC Web 应用程序中验证 JWT 令牌。
提前致谢!
代码:
services.AddAuthentication(j =>
{
j.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
j.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
j.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.SaveToken = true;
x.RequireHttpsMetadata = true;
x.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
//ValidateLifetime = true,
//ValidateIssuerSigningKey = true,
ValidIssuer = "xyz.com",
ValidAudience = "xyz.com",
IssuerSigningKey = new SymmetricSecurityKey(key),
ClockSkew = TimeSpan.FromMinutes(5)
};
});
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Login}/{action=Login}/{id?}");
});
【问题讨论】:
-
我回答了一个我认为您正在寻找的问题,希望对您有所帮助stackoverflow.com/a/48890659/5517088
-
感谢@Kevin 提供的信息,但我之前已经尝试过所有这些步骤,但遇到了同样的问题
-
您面临的问题/错误信息是什么?
-
您能否提供一个请求示例以及您的授权标头
-
@Nan Yu 得到一个 401 未授权异常
标签: asp.net-core-mvc jwt asp.net-core-webapi