0
我正在为我的项目构建一个OpenAPI支持,但我需要swagger.yaml文件仅对授权用户可用。如何保护Swagger.yaml文件?
Swagger UI和Swagger Editor似乎都期望swagger.yaml文件可公开访问。
我想过各种方法来解决它。人们可以使用“签名”的URL,类似于S3的方式 - 这种方式只有拥有链接的人才能访问它。
什么是好习惯?
我正在为我的项目构建一个OpenAPI支持,但我需要swagger.yaml文件仅对授权用户可用。如何保护Swagger.yaml文件?
Swagger UI和Swagger Editor似乎都期望swagger.yaml文件可公开访问。
我想过各种方法来解决它。人们可以使用“签名”的URL,类似于S3的方式 - 这种方式只有拥有链接的人才能访问它。
什么是好习惯?
我想通了。在Swagger-UI github page存在可以在index.html
设置的authorizations
参数的说明:
授权对象将被传递到招摇-JS。在这里设置它将触发包含任何授权或自定义签名逻辑,当获取swagger描述文件时。注意对象结构应该是{key:AuthorizationObject}
我所做的是设置了一个保护Swagger-UI的Node.js服务器。如果令牌未在Cookie中设置,它会指导用户完成OAuth 2.0流程,设置Cookie,然后仅指向swagger-ui。
扬鞭-UI反过来又authorizations
参数设置如下:在下载swagger.yaml文件时
authorizations: {
"_auth": new SwaggerClient.ApiKeyAuthorization(
"Authorization", "Bearer "+ Cookies.get("MyAccessToken"),
"header")
}
头部然后被传递到服务器。