Nodejs Loopback 4 将不记名令牌配置添加到 swagger 资源管理器中

Nodejs Loopback 4 add bearer token config into swagger explorer

我正在使用 Nodejs loopback 4 构建 API 项目并使用 JWT 令牌作为身份验证组件。但是,当我探索内置的 loopback swagger(默认为 localhost:3000/explorer)然后导航到我的 API url 之一时,没有 JWT Bearer Token 的输入位置。我如何配置让 swagger 显示 JWT 令牌输入(这就像它显示参数查询、请求正文输入...) 提前致谢

来自 LoopBack 团队的问候

一般的身份验证,特别是基于令牌的身份验证,是我们目前正在努力的事情。

从 API Explorer 启用令牌输入的问题已在 loopback-next#2210 中讨论。 swagger-ui,为我们的 REST API 浏览器提供支持的模块,确实支持基于令牌的身份验证。它需要 uires 描述应用程序 API 的 OpenAPI 规范文档,以描述应用程序使用的身份验证(安全)模式。

所以本质上,框架或应用程序需要修改 OpenAPI 规范以包含 OpenAPI 的 SecuritySchemeObject.

首先,必须在所有端点共享的 securityDefinitions 部分中定义安全策略:

securityDefinitions:
  petstore_auth:
    type: "oauth2"
    authorizationUrl: "http://petstore.swagger.io/oauth/dialog"
    flow: "implicit"
    scopes:
      write:pets: "modify pets in your account"
      read:pets: "read your pets"
  api_key:
    type: "apiKey"
    name: "api_key"
    in: "header"

上面的例子使用了"oauth2"类型。对于 JWT,您需要使用 "apiKey" 类型。

定义了安全类型后,您可以从端点定义中引用它:

      security:
      - petstore_auth:
        - "write:pets"
        - "read:pets"

以下 GitHub 问题是跟踪启用所需的工作 我们的 REST API Explorer 中基于令牌的身份验证:loopback-next#2027。欢迎订阅通知或加入讨论。

您可能也对以下拉取请求感兴趣,它正在为我们的购物示例应用添加对 JWT 身份验证的支持:loopback4-example-shopping#26