首页 > 解决方案 > 如何在 Swagger UI 中进行身份验证后设置 Bearer 令牌

问题描述

我有一个用 PHP 编写的 REST API 服务提供者。我在 Postman 中成功测试了它,它在那里正常工作。

现在我要为其准备 API 文档,并且我正在使用 Swagger UI 3。我正确设置了它,我可以使用顶部的Authorize按钮处理 Authorization。

成功登录后,我希望端点设置和使用相应的承载令牌。但这不会发生,当我尝试任何端点时,REST 服务器抱怨缺少授权标头。我测试了网络流量,没有令牌和 HTTP 请求一起出现。

我的问题是,在使用顶部的授权按钮成功登录后,如何在 Swagger UI 的标头中发送 Bearer 令牌?我应该采取任何步骤/流程来将端点请求与令牌一起提供吗?

标签: swaggerswagger-uiopenapiswagger-3.0

解决方案


我在一个.NET core项目中使用它,并且在启动文件中我必须放置以下代码部分:

services.AddSwaggerGen(options =>
        {

            //authentication
            var security = new Dictionary<string, IEnumerable<string>>
            {
                {"Bearer", new string[] { }},
            };
            options.AddSecurityDefinition("Bearer", new ApiKeyScheme
            {
                In = "Header",
                Description = "Please insert JWT into field",
                Name = "Authorization",
                Type = "apiKey"
            });

            options.AddSecurityRequirement(security);
}

推荐阅读