OAuth 2.0 生命周期 "code" 授权码授予

OAuth 2.0 Life cycle of "code" in Authorization code Grant

授权码授予:我知道该代码是用短期令牌交换真正的长期访问令牌。我已经浏览了 Oauth 2.0 但找不到此信息所以在这里问:

我正在使用 oAuth 2.0 plugin on Kong API gateway。它使代码在特定时间内保持活动状态,到那时可以使用相同的代码生成多个访问令牌。 这是预期的行为吗?

感谢任何建议。

code 是一种短期的一次性访问令牌。 一旦它被交换为访问令牌,它应该被标记为无效。
对于 Kong 问题最好问一下 here

授权码必须是短期的,并且应该一次性使用,以避免被盗用。所以回答你的问题

代码的生命周期是多少?

  • 当用户使用 authorication_code 流程进行身份验证时,一旦通过身份验证并授予范围访问权限,将创建一个短暂的(比如 1 分钟)有效代码,并且发送回重定向 uri。

是一次性使用吗?

  • 是的,为了获得最佳安全性,它必须一次性使用,当使用 authorication_code 请求访问令牌时,请求成功或失败(由于某些验证错误或服务器错误),授权码必须删除或标记为已使用(取决于你想如何使用它)

代码可以交换多少次才能获得访问令牌?

  • 一个 authorization_code 只能授予一个访问令牌,因为一旦颁发访问令牌,代码就会被撤销。

在为该代码提供访问令牌后该代码会发生什么情况?

最佳实践,代码可以删除

查看 google oauth2.0 文档以更好地理解并查看其使用方法。

https://developers.google.com/identity/protocols/OAuth2WebServer

关于 Kong 问题,它似乎是 kong 中的一个错误,他们承诺会在 0.9 版本中修复。 检查这个 discussion.