【发布时间】:2017-07-13 00:35:37
【问题描述】:
我正在研究 Oauth2,以允许开发人员授权其应用的用户使用我的服务。我发现一些消息来源说,当用户发送断言(在我的情况下为 JWT)时,我的授权服务器应该返回访问令牌,但它不应该返回刷新令牌。我想知道返回刷新令牌有什么害处。开发人员可以通过调用使从特定 JWT 的 id 授予的任何访问无效的 Api 来使刷新/访问令牌无效。
【问题讨论】:
-
使用RFC7521,刷新令牌是无用的,正如the section 4.1 中提到的:客户端可以通过使用相同的断言请求一个新的访问令牌来刷新过期的访问令牌,如果它仍然有效,或使用新的断言。
-
我不同意它没用。我在想一个客户在一段时间不活动后醒来。该客户端必须向其应用服务器请求 JWT,然后用该 JWT 换取访问令牌。那是 2 次往返与 1 次往返。也许这没什么大不了的,但这里有一个不可忽略的性能影响。
-
这是没用的,因为客户端可以通过发送相同的断言(如果未过期)或创建一个新断言来刷新它。因为它通常是在客户端生成的,所以这是一个 1 轮。
-
哦,是的,我理所当然地认为该断言是短暂的。它包含可识别信息,因此客户不应存储它。我应该早点提到这一点。