OAuth 授权码何时到期?

When should an OAuth authorization code expire?

我知道(在 OAuth 中使用授权代码“授权代码”时),访问令牌的生命周期应该很短,但刷新令牌的生命周期可能很长。 所以我决定为我的项目:

但是授权码的典型生命周期是多长? 我认为它应该非常非常短是对的吗? 可能需要 1 小时甚至几分钟?

我找不到任何关于此的“最佳实践”..

所有这些都是标准的,但在大多数身份/身份验证服务器中都是可配置的。

授权码

当用户同意应用程序访问他们的数据时,他们会返回一个授权码。此代码通常只使用五分钟。低于此值的任何值都可能会导致您出现时钟偏差问题,IMO 确实没有理由让它更长。

访问令牌

交换授权码后返回访问令牌。访问令牌。访问令牌通常只能使用 60 分钟。

刷新令牌

刷新令牌是长期存在的令牌。以下是google的标准。

  • 刷新令牌可以使用六个月,但这次正在下滑。
  • 如果应用程序六个月未使用刷新令牌,则访问权限将被撤销。
  • 用户也可以随时撤销访问权限。
  • 取决于请求的范围。一些刷新令牌在用户更改密码后过期

同样,以上只是 google 标准。在我工作的身份服务器上。我认为当前设置是一个月不使用刷新令牌过期。

刚刚在其他站点找到答案:

The authorization code must expire shortly after it is issued. The OAuth 2.0 spec recommends a maximum lifetime of 10 minutes, but in practice, most services set the expiration much shorter, around 30-60 seconds.

来源:https://www.oauth.com/oauth2-servers/authorization/the-authorization-response/