测试aspnetcore使用Jwt做认证授权的时候,一直提示401 Authorization
最后发现问题所在,希望能有所帮助
1.检查注册了认证和授权中间件 缺一不可

  /*认证*/
  app.UseAuthentication();
  /*授权*/
  app.UseAuthorization();

2.检查swagger的配置项

builder.Services.AddSwaggerGen(option => {
    option.SwaggerDoc("v1", new OpenApiInfo
    {
        Version = "v1",
        Title = "",
        Description = $"API描述"
    });
    var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    //IncludeXmlComments 第二参数 true 则显示 控制器 注释
    option.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);

    var scheme = new OpenApiSecurityScheme()
    {
        Description = "Authorization header. \r\nExample: 'Bearer 12345abcdef'",
        Reference = new OpenApiReference
        {
            Type = ReferenceType.SecurityScheme,
            Id = "Authorization"
        },
        Scheme = "oauth2",
        Name = "Authorization",
        In = ParameterLocation.Header,
        Type = SecuritySchemeType.ApiKey,
    };
    option.AddSecurityDefinition("Authorization", scheme);
    var requirement = new OpenApiSecurityRequirement();
    requirement[scheme] = new List<string>();
    option.AddSecurityRequirement(requirement);
});
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐