在rfc上,您可以看到这样一句话:"Removed 'expired_token‘https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-12#page-40“。
也就是说,"invalid_token“将用于过期令牌的情况。
为什么会这样呢?我认为这对客户端区分过期令牌和无效令牌非常有用。没有"expired_token",客户端如何决定是否刷新访问令牌?
发布于 2016-01-22 17:18:01
删除它是为了防止攻击者可能使用的信息的潜在安全泄漏。
假设攻击者可以通过嗅探您的所有网络流量来获取您的访问令牌的副本。但攻击者仅在令牌过期后才分析此信息。如果攻击者试图使用该令牌向您的服务发出请求,并收到返回的“expired_token”代码,他们就知道他们找到了正确的东西,只需要获得一个稍后的副本即可。
但是,如果攻击者收到回一条“invalid_token”消息,攻击者就更难理解他们拥有的数据是访问令牌(可能是其他东西?)。
此外,访问/刷新令牌通常的工作方式如下所示:
如果客户端在本地验证了上面的新令牌,并得到一个错误(可能令牌已过期,等等),则它们知道需要重新验证用户fresh以接收新的刷新令牌和访问令牌。
如果当用户提交他们的刷新请求时,他们的刷新令牌被认为是无效的(可能是服务器端撤销了这个令牌?),情况也是如此。
https://stackoverflow.com/questions/34671397
复制