AddSwaggerGen代码:
services.AddSwaggerGen(option => { option.SwaggerDoc("System", new OpenApiInfo { Title = "系统功能", Description = " 系统功能文档 ", Version = "v1" }); option.SwaggerDoc("NoGroup", new OpenApiInfo { Title = "其他", Description=" 其他功能文档 ",Version="v1"}); var bearer = new OpenApiSecurityScheme() { Description = "JWT Bearer", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }; option.AddSecurityDefinition("Bearer", bearer); var sr = new OpenApiSecurityRequirement(); sr.Add(new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] { }); option.AddSecurityRequirement(sr); option.CustomSchemaIds(t => t.ToString()); });
UseSwaggerUI代码:
app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/System/swagger.json", "系统功能"); options.SwaggerEndpoint("/swagger/NoGroup/swagger.json", "其他"); });
我在其中一个分组设置了Authorization,再切换到其他分组时, Authorization信息就丢失了,请问下这种情况如何解决呢?
以前在net3.1时使用swagger没有出现这种情况的。
试试F12-》Application-》Cookies-》对应的地址加上Authorization 日期设置久一点就可以了
奇怪的是之前netcore3.1用swagger时,切换分组不会丢失这个授权信息。如果在浏览器F12去设置这个就是太麻烦了。
@尾随前行: Authorization第一次设置久一点不就行了
问题解决了么?
有没有办法让Doc1用Cookies授权,Doc2用Bearer授权。即,添加多个option.AddSecurityDefinition,切换分组时也切换授权方式
这个还没解决呢,swagger是针对api的。用cookie授权应该直接登录就好了吧