Nodejs Loopback 4将承载令牌配置添加到swagger资源管理器中

时间:2019-01-25 09:17:56

标签: node.js authorization swagger swagger-ui loopback

我正在使用Nodejs回送4来构建API项目,并使用JWT令牌作为身份验证组件。但是,当我探索内置的回送选项(默认为localhost:3000 / explorer)然后导航至我的API网址之一时,JWT Bearer Token没有输入位置。我该如何配置,以便大摇大摆地显示JWT令牌输入(就像显示参数查询,请求正文输入...) 预先感谢

1 个答案:

答案 0 :(得分:1)

LoopBack小组的您好

一般来说,身份验证尤其是基于令牌的身份验证是我们目前正在努力的工作。

loopback-next#2210中讨论了从API Explorer启用令牌输入的问题。 swagger-ui,为我们的REST API资源管理器提供支持的模块,确实支持基于令牌的身份验证。它要求描述应用程序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资源管理器中,基于令牌的身份验证:loopback-next#2027。随时订阅通知或参加那里的讨论。

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