在rfc https://tools.ietf.org/html/draft-ietf-oauth-v2-12#page-40上,您可以看到一句话说“已删除'expired_token'错误代码。”
也就是说,“invalid_token”将用于过期的令牌案例。
为什么?我认为客户端区分过期令牌和无效令牌非常有用。如果没有“expired_token”,客户端如何决定是否刷新访问令牌?
答案 0 :(得分:1)
它已被删除,以防止攻击者可能使用的信息泄露。
假设攻击者可以通过嗅探您的所有网络流量来获取访问令牌的副本。但攻击者只在令牌过期后才会分析此信息。如果攻击者试图使用该令牌向您的服务发出请求,并收到“expired_token”代码,则他们知道他们是正确的,并且需要稍后复制。
但是,如果攻击者收到“invalid_token”消息,则攻击者更难理解他们拥有的数据是否为访问令牌(可能是其他内容?)。
此外,访问/刷新令牌的工作方式通常如下:
如果客户端在本地验证上面的新令牌,并且收到错误(可能是令牌已过期或其他内容),则他们知道需要重新验证用户FRESH以接收新的刷新和访问令牌。
如果用户提交刷新请求时,其刷新令牌被视为无效(可能是服务器端撤销了此令牌?),情况也是如此。