当前位置: 首页 > 知识库问答 >
问题:

使用API密钥

梁韬
2023-03-14

Swagger支持api密钥的安全性,但这似乎仅限于单个参数。

有没有办法定义一组参数(key和secret)作为请求中的参数?

或者,唯一的方法就是跳过安全方案,只将这些参数添加到每个请求中?

共有1个答案

陶淳
2023-03-14

是的,OpenAPI (Swagger) 2.0和3.0允许您定义多个安全性定义,并将一个操作标记为需要多个安全性,例如一对API密钥。

在下面的示例中,我定义了两个API密钥,KeySECKey,这两个密钥都应该存在于每个请求的标头中,以便进行身份验证。

swagger: '2.0'
info:
  version: 0.0.0
  title: Simple API
securityDefinitions:
  key:
    type: apiKey
    in: header
    name: Key
  secret_key:
    type: apiKey
    in: header
    name: SecretKey

# Or if you use OpenAPI 3.0:
# components:
#   securitySchemes:
#     key:
#       type: apiKey
#       in: header
#       name: Key
#     secret_key:
#       type: apiKey
#       in: header
#       name: SecretKey

paths:
  /:
    get:
      # Both 'Key' and 'SecretKey' must be used together
      security:
        - key: []
          secret_key: []
      responses:
        200:
          description: OK

请注意,这与

      security:
        - key: []
        - secret_key: []  # <-- Note the leading dash here

这意味着endpoint需要密钥密钥,但不是两者兼而有之。

 类似资料:
  • 我得到异常“http://api.openweathermap.org/data/2.5/weather?q=sydney”。有人能帮忙怎么用吗。当我粘贴以下内容时,可以很好地使用web浏览器 我也试过下面的组合,但没有运气

  • 我想保护Spring Boot API,使它只对具有有效API密钥和秘密的客户机是可访问的。但是,由于所有数据都是匿名的,程序内部没有身份验证(使用用户名和密码的标准登录)。我试图实现的只是所有API请求都可以仅用于特定的第三方前端。

  • 我遇到了许多API,它们为用户提供了一个API密钥和一个秘密。但我的问题是:两者之间有什么区别? 在我看来,一把钥匙就足够了。假设我有钥匙,只有我和服务器知道。我用这个键创建了一个HMAC哈希,并进行了一个API调用。在服务器上,我们再次创建HMAC哈希,并将其与发送的哈希进行比较。如果是相同的,则呼叫经过身份验证。 那为什么要用两把钥匙呢? 编辑:或者该API密钥用于查找API机密?

  • 问题内容: 我有一个使用两个第三方服务的React应用程序。该应用已开始使用。 这两个服务都需要一个API密钥。 一键通过脚本标签提供,如下所示: 另一个API密钥用于请求中。我将实际密钥存储在一个常量中,并用它来构成请求。像这样: Google 在处理API密钥方面的最佳做法提示是: 不要将API密钥直接嵌入代码中 这使我想到了第一个问题: 1.如何在中使用变量? 在我的文件中,我有两个看起来像

  • 我正在使用codeigniter rest服务器api库。 我进去的时候http://localhost/projects/myapi/key/index_put.php然后按enter键会出现以下错误: 当我在url中给出一个伪字符串时,如: http://localhost/projects/myapi/key/index_put.php?X-API-KEY=ASLDFJ9ALSDJFLJA9