在使用ASP.NET时,使用JWT进行身份验证时可能会遇到问题。以下是
仔细检查你的代码,确认是否正确配置了JWT。
确认登陆是否成功,如果没有成功,那么就没有生成JWT。
配置正确的验证参数,在Startup类中的ConfigureServices方法里添加以下代码:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["JwtIssuer"], ValidAudience = Configuration["JwtIssuer"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JwtKey"])) }; });
使用Authorize特性来限制授权,在你要限制的控制器或操作上面添加[Authorize]:
[Authorize]
[Route("api/[controller]")]
public class MyController : Controller
{
// GET: api/values
[HttpGet]
public IEnumerable
通过以上四个步骤,便可以解决ASP.NET使用JWT时的身份验证问题。