GitLab OAuth访问令牌有效性



有人知道GitLab上OAuth访问令牌的有效期是什么吗?

至少需要12个小时(从经验来看),但我想确定一下,这样我就不会刷新不必要的令牌。

PS: GitLab…如果在获取/刷新令牌时返回过期时间将非常方便(PS:文档中声明返回"expires_in":…

from https://forum.gitlab.com/t/missing-expires-in-in-the-token-response/1232/2:

Gitlab使用Doorkeeper for oauth.

Doorkeeper wiki有一篇文章"自定义令牌过期"。比;https://github.com/doorkeeper-gem/doorkeeper/wiki/Customizing-Token-Expiration2

这个wiki告诉我们一个配置&;access_token_expires_in&;。我在;在gitlab源代码中搜索,发现它设置为nil。

这意味着'access_token'永远不会过期。

同样,这是来自https://gitlab.com/gitlab-org/gitlab-foss/-/blob/50d66f5ece57dcfbe074d97703691a8d3c38f4ac/config/initializers/doorkeeper.rb#L42:

 # Access token expiration time (default 2 hours).
 # If you want to disable expiration, set this to nil.
 access_token_expires_in nil

在GitLab上,OAuth "访问令牌在两小时内过期"。

访问令牌在两小时内过期,这意味着使用它们的集成必须支持至少每两小时生成新的访问令牌。

在旧版本中,OAuth应用程序可以选择退出访问令牌到期。

选择退出过期访问令牌的功能在GitLab 14.3中已弃用,并在15.0中删除。必须更新所有现有的集成以支持访问令牌刷新。

2016:默认为8小时

lib/gitlab/o_auth/session.rb提及:

Rails.cache.write("gitlab:#{provider}:#{ticket}", 
                   ticket, expires_in: Gitlab.config.omniauth.cas3.session_duration)
在gitlab

。Yml,你有:

# SSO maximum session duration in seconds. Defaults to CAS default of 8 hours.
# cas3:
#   session_duration: 28800

2022:即将过期的访问令牌文档提到:

  • 从GitLab 15.0(2022年6月)起不再允许退出过期的访问令牌
  • 访问令牌在两小时内过期这意味着使用它们的集成必须支持至少每两小时生成新的访问令牌。

最新更新