为什么OAuth2委员会删除了'expired_token'错误代码?

时间:2016-01-08 07:14:20

标签: oauth-2.0 access-token rfc

在rfc https://tools.ietf.org/html/draft-ietf-oauth-v2-12#page-40上,您可以看到一句话说“已删除'expired_token'错误代码。”

也就是说,“invalid_token”将用于过期的令牌案例。

为什么?我认为客户端区分过期令牌和无效令牌非常有用。如果没有“expired_token”,客户端如何决定是否刷新访问令牌?

1 个答案:

答案 0 :(得分:1)

它已被删除,以防止攻击者可能使用的信息泄露。

假设攻击者可以通过嗅探您的所有网络流量来获取访问令牌的副本。但攻击者只在令牌过期后才会分析此信息。如果攻击者试图使用该令牌向您的服务发出请求,并收到“expired_token”代码,则他们知道他们是正确的,并且需要稍后复制。

但是,如果攻击者收到“invalid_token”消息,则攻击者更难理解他们拥有的数据是否为访问令牌(可能是其他内容?)。

此外,访问/刷新令牌的工作方式通常如下:

  • 客户端需要发出API请求并具有访问令牌和刷新令牌。
  • 客户端使用其访问令牌向API服务发出请求,并收到“invalid_token”消息。
  • 客户端在本地验证其刷新令牌,看它仍然有效。
  • 然后,客户端使用刷新令牌提交刷新请求,并获取新的访问令牌。

如果客户端在本地验证上面的新令牌,并且收到错误(可能是令牌已过期或其他内容),则他们知道需要重新验证用户FRESH以接收新的刷新和访问令牌。

如果用户提交刷新请求时,其刷新令牌被视为无效(可能是服务器端撤销了此令牌?),情况也是如此。