【发布时间】:2020-09-19 04:18:12
【问题描述】:
我正在开发一个拥有网站和 API 的 ASP.NET Core 项目。我需要通过某种方式保护 API,所以我实现了 JWT 身份验证。这按预期工作,API 只能通过使用有效令牌进行的调用来访问。
问题是,网站上的内置登录功能不再起作用。 这是我添加到 Startup.cs 的代码:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(o =>
{
o.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration["Jwt:Issuer"],
ValidAudience = Configuration["Jwt:Issuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
};
});
如果我删除此代码,内置登录功能将照常工作,但 API 不再工作。
有没有办法让 JWT 身份验证仅适用于 API 控制器?或者有没有办法让内置身份验证使用 JWT?
【问题讨论】:
标签: c# asp.net-core jwt