有人知道 GitLab 的 OAuth 访问令牌的过期时间吗?
从经验来看,至少为12小时,但我想确定一下,以免不必要地刷新令牌。
PS:GitLab...如果在获取/刷新令牌时返回过期时间,那将非常方便(PS:文档中指出返回“expires_in”,但实际上没有返回)。
有人知道 GitLab 的 OAuth 访问令牌的过期时间吗?
从经验来看,至少为12小时,但我想确定一下,以免不必要地刷新令牌。
PS:GitLab...如果在获取/刷新令牌时返回过期时间,那将非常方便(PS:文档中指出返回“expires_in”,但实际上没有返回)。
来自https://forum.gitlab.com/t/missing-expires-in-in-the-token-response/1232/2:
Gitlab使用Doorkeeper进行oauth。
Doorkeeper wiki上有一篇文章“Customizing Token Expiration” > https://github.com/doorkeeper-gem/doorkeeper/wiki/Customizing-Token-Expiration2
这篇wiki告诉我们有一个“access_token_expires_in”的配置项。我在Gitlab源代码中搜索,发现它被设置为nil。
这意味着“access_token”永远不会过期。
# Access token expiration time (default 2 hours).
# If you want to disable expiration, set this to nil.
access_token_expires_in nil
访问令牌在两个小时后过期,这意味着使用它们的集成必须支持至少每两个小时生成新的访问令牌。
在旧版本中,OAuth应用程序可以选择退出访问令牌到期。
退出访问令牌过期的功能已在GitLab 14.3中弃用,并在15.0中删除。所有现有集成必须更新以支持访问令牌刷新。
2016年:默认应该是8小时:
{{link1:lib/gitlab/o_auth/session.rb
}}提到:
Rails.cache.write("gitlab:#{provider}:#{ticket}",
ticket, expires_in: Gitlab.config.omniauth.cas3.session_duration)
# SSO maximum session duration in seconds. Defaults to CAS default of 8 hours.
# cas3:
# session_duration: 28800
2022年:过期的访问令牌文档提到:
gitlab.yml
中对于 session_duration
的设置是怎样的? - VonC