ABP 用swagger UI测试API报401无权限访问问题

当使用Swagger UI测试ABP框架的Web API时遇到401错误,原因是需要授权token。解决方案包括:1) 直接调用/token-auth/authenticate API获取token;2) 从登录后的客户端中复制Authorization头的Bearer token。将正确token添加到Swagger后,可以成功授权并测试API。
摘要由CSDN通过智能技术生成

问题描述:

当我们用swagger UI对Web API 进行测试时报401错误

我们点开GET /api/services/app/Role/GetAll,输入参数

 

点击Try it out!按钮,报401错误

 

 

原因和解决方案

查看右上角有个红色感叹号的图标

 

点击查看原因是访问API需要输入授权token值进行验证,token值是后台根据登录用户动态生成的,如何获取呢?

 

解决方案一:

有个直接获取授权token的API:

ABP中配置Swagger,可以按照以下步骤进行操作: 1. 在Startup的ConfigureServices方法中添加以下代码: ```csharp services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" }); }); ``` 这段代码会添加Swagger生成器,并指定API的标题和版本。 2. 如果你的项目中有XML注释文件,可以将其包含在Swagger文档中。在Startup的ConfigureServices方法中添加以下代码: ```csharp var xmlFile = @"XXX.Application.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); options.IncludeXmlComments(xmlPath, true); ``` 这段代码会将XML注释文件包含在Swagger文档中,以便生成API文档能够显示注释内容。 3. 如果你想对Swagger文档进行更多的配置,可以在Startup的ConfigureServices方法中使用options对象进行配置。例如,你可以添加全局的请求过滤器、授权认证等。以下是一个示例: ```csharp services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "API", Version = "v1" }); // 添加全局的请求过滤器 options.OperationFilter<FileUploadOperation>(); // 添加授权认证 options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer scheme", Type = SecuritySchemeType.Http, Scheme = "bearer" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] {} } }); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值