我正在尝试使用 swagger-ui-express 设置基本身份验证。我正在传递一个选项对象来执行此操作,如文档中所示,但它不起作用。我无法判断这是因为我的选项对象的结构错误还是因为其他原因。预先非常感谢您!
const express = require('express');
const router = express.Router();
const swaggerUi = require('swagger-ui-express');
const dashboardDocument = require('../dashboardAPI.json');
var options = {
swaggerOptions: {
authAction: {
Basic: {
name: "user1",
schema: {
type:"application/json",
in: "header",
name: "Authorization",
},
value: "Basic bG9naW46cGFzc3dvcmQ="
}
}
}
}
router.use("/", swaggerUi.serve);
router.get("/", swaggerUi.setup(dashboardDocument, options));Run Code Online (Sandbox Code Playgroud)
有两件事,第一件事是你的 swaggerUi 选项。
我认为你在按键上犯了一些错误。
const swaggerUiOptions = {
swaggerOptions: {
basicAuth: {
name: 'Authorization',
schema: {
type: 'basic',
in: 'header'
},
value: 'Basic <user:password>'
}
}
}
server.use('/v1/swagger', swaggerUi.serve, swaggerUi.setup(swaggerSpec, swaggerUiOptions))
Run Code Online (Sandbox Code Playgroud)
第二个是你的 swagger 定义,你必须添加一个securitySchemes来使用你的基本授权并在你的路由定义中使用它。https://swagger.io/docs/specification/authentication/
我使用 swagger Jsdoc 对我来说它是:
components: {
securitySchemes: {
basicAuth: {
type: 'http',
scheme: 'basic'
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |