GitLab 刷新 oAuth 令牌

7

阅读http://docs.gitlab.com/ce/api/oauth2.html上的文档,但是没有关于如何撤销和刷新OAuth令牌的信息。

刷新令牌可能是必要的,因为在令牌响应中还会获取刷新令牌。

{
  "access_token": "de6780bc506a0446309bd9362820ba8aed28aa506c71eedbe1c5c4f9dd350e54",
  "token_type": "bearer",
  "scope": "api",
  "created_at": 1372559331
  "refresh_token": "8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1"
}
2个回答

7

好的,在查找了一番后,我找到了它:

Map<String, String> parameters = new HashMap<>();
parameters.put("grant_type", "refresh_token");
parameters.put("refresh_token", refreshToken);
parameters.put("scope", "api");

return post("https://gitlab.com/oauth/token", parameters, ...

注意:在最新版本的GitLab中,刷新令牌不是必需的,因为如果请求失败(响应未到达您),但令牌已更改,则可能会被锁定。


如果对其他人来说不明显,您仍然需要包括client_idclient_secret参数。 - steinybot
你需要刷新吗?还是访问令牌不像Github那样过期。 - user187676
据我所记,4年前不需要刷新 - 所以事情可能已经改变了。 - Drejc

3

您现在使用的是GitLab 14.3(2021年9月):

默认情况下,OAuth访问令牌将具有过期时间

从此版本开始,任何在发布后发行的OAuth访问令牌将具有2小时的过期时间窗口

以前,OAuth访问令牌永不过期,这是不安全的。

您可以通过取消OAuth应用程序界面上的过期访问令牌复选框来禁用此选项。

请参阅文档问题


正如Javanshir Huseynli评论中所指出的,

现在无法再禁用过期。访问令牌必须使用刷新令牌每两小时刷新一次。

请参阅访问令牌过期


对于新来的人来说,现在已经无法禁用过期了。访问令牌必须使用刷新令牌每两个小时进行更新。请参阅https://docs.gitlab.com/ee/integration/oauth_provider.html#access-token-expiration。 - Javanshir Huseynli
1
@JavanshirHuseynli 感谢您的反馈。我已将您的评论包含在答案中以增加可见性。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接