为什么速率限制与对 GitHub API 的授权和匿名访问相似?

Why is rate limit similar with authorized and anonymous access to GitHub API?

当我使用 Postman 发送请求并检查响应时 header 我可以看到:

当我尝试使用我创建的旧 PAT 或验证后的 OAuth 令牌时(我创建了应用程序并使用来自我的数据库的 OAuth 流验证了用户,所以我在 Postman 中使用这个令牌只是为了检查)调用 GitHub REST API 像这样:https://api.github.com/repos/djordjeviclazar/rep/branches 并在 header 中设置 access_token 就像在 documentation 中一样,我可以在 header 中看到 X-RateLimit-Limit 是 60,并且我可以看到 X-RateLimit-Remaining 是小于 60.

来自 documentation:

For API requests using Basic Authentication or OAuth, you can make up to 5,000 requests per hour.

Authenticated requests are associated with the authenticated user, regardless of whether Basic Authentication or an OAuth token was used. This means that all OAuth applications authorized by a user share the same quota of 5,000 requests per hour when they authenticate with different tokens owned by the same user.

所以我想这意味着我不能制作更多令牌并期望每小时请求超过 5000 个,但为什么只有 60 个,为什么 API 将我的请求视为匿名?此外,我认为 Search API 的限制更多。访问 GitHub REST API 的正确方法是什么?

问题是此调用未经过身份验证,因为您已指定:

  • 添加到 Headers
  • 键:access_token
  • 值:{{PAT}}

它将添加具有以下值的 HTTP header:access_token: [PAT value] 未被 Github 处理。

检查 headers 选项卡中发送的 headers 它应该打印 Authorization: Token YOUR_TOKENAuthorization: Bearer YOUR_TOKEN

以下配置将正常工作:

  • 添加到 Headers
  • 键:Authorization
  • 值:Token {{PAT}}(也 Bearer {{PAT}} 有效)

您还可以使用 Bearer Token 类型的授权,这与 Bearer XXXX:

相同

此外,您还可以禁用授权(值为 No),并在 header 中附加 Authorization header:

请注意 url 查询参数中 access_token 的用法已 deprecated since end 2019