我目前正在使用swagger-ui 2.x,以下是我在swagger-ui 2.x中使用的身份验证。
var key = $(this).val(); swaggerUi.api.clientAuthorizations.add("默认",新的SwaggerClient.ApiKeyAuthorization("授权"," Bearer" + key," header" ;));
目前,我将swagger-ui升级到最新的3.x版本,我需要知道如何通过swagger 3.x实现上述目标。我可以进行基于承载令牌的身份验证吗?
答案 0 :(得分:1)
目前,SwaggerUI 3.x似乎没有这样做的确切方法。但是,您可以在初始化SwaggerUIBundle时添加请求拦截器。在那里,您可以注入授权标头以满足您的要求。
前:
SwaggerUIBundle({
spec: spec ,
dom_id: '#someId',
presets: [
SwaggerUIBundle.presets.apis
],
requestInterceptor: function(request) {
request.headers.Authorization = "Bearer " + key;
return request;
}
});
答案 1 :(得分:1)
如果您想自动验证“试用”请求,可以使用requestInterceptor
。如果您想要提供用户可以输入其承载令牌的UI,则可以将相应的安全定义添加到API定义中:
securityDefinitions:
bearerAuth:
type: apiKey
in: header
name: Authorization
description: Enter your bearer token in the format **Bearer <token>**
security:
- bearerAuth: []
在这种情况下,Swagger UI将显示“授权”按钮。用户可以单击此按钮输入其持有者令牌:
如果您使用的是OpenAPI 2.0(fka Swagger 2.0)。
OpenAPI 3.0 supports Bearer authentication本身,以便可以输入不带“Bearer”前缀的承载令牌。