也许我误解了授权代码授予类型,但我认为在发出代码spring之后,在DB中的oauth_code表中的代码将永远保持到被用户撤销为止,但是代码在被使用后就会被删除(第一次用它来交换令牌),
那么这里的流程是什么?我的客户端应该保留刷新令牌,以便稍后(或者当用户离线时)获取访问令牌。
规范说刷新令牌的返回是可选的,如所写。
授权服务器对客户机进行身份验证,验证授权代码,并确保接收到的重定向URI与步骤(C)中用于重定向客户端的URI匹配。如果有效,授权服务器将使用访问令牌和(可选)刷新令牌进行响应。
因此,授权服务器决定不提供刷新令牌,客户端没有办法离线请求访问令牌,它们需要再次遍历授权代码进程吗?
谢谢史洛米
发布于 2015-01-26 03:10:35
授权代码只能使用一次,并且必须具有较短的生存期。如果你读了规范的第4.1.2节,上面写着
授权代码必须在发布后不久到期,以减少泄漏的风险。建议最大授权代码生存期为10分钟。
因此,一旦使用了代码,就没有真正的理由保留它(除了可能检测到使用它的进一步尝试之外)。
刷新令牌允许客户端获得另一个访问令牌。否则,正如您所说的,它需要重新执行授权代码流才能从头开始获得授权代码流,这需要资源所有者(用户)的交互。通常,系统将被设置为向该客户端发出刷新令牌,这取决于它是否实际需要对资源的脱机访问,或者资源所有者(用户)是否总是直接与其交互。
https://stackoverflow.com/questions/28129976
复制相似问题