为什么GitHub Oauth2 Authorization header 的认证方案是'token' 而不是'Bearer'?

Why the authentication scheme of GitHub Oauth2 Authorization header is 'token' not 'Bearer'?

根据 RFC6750, the HTTP Authentication Scheme should be 'Bearer'. But this GitHub doc 使用 'token' 作为方案。我都试过了,看起来这两个都有效。

我的问题是:

  1. GitHub 使用 'token' 而不是标准有什么原因吗?
  2. 这个方案是不是只要服务器能看懂就可以了?

协议(如 RFC6750)只是多方同意的通用标准,所以从根本上说,是的,只要客户端和服务器同意,它可以是任何东西。

OAuth 特别有很多扩展 - 实施者做的事情不完全符合规范,或者可能在规范中留下歧义或 open-ended。刷新令牌的处理是您经常看到的一个领域。

至于 GitHub,我怀疑他们支持 token header 因为他们允许 header 用于 OAuth 令牌以外的其他类型的令牌,特别是个人访问令牌和 GitHub 应用程序令牌。

此外,在您链接的 RFC 发布之前,可能至少有一些用途(尤其是个人访问令牌)已经在使用。