Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-06-03. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

刷新用户到服务器访问令牌

要实施定期令牌轮换并减少受威胁令牌的影响,您可以配置 GitHub 应用程序 以使用过期用户访问令牌。

注:过期用户令牌目前是可选功能,可能会更改。 要选择使用或退出用户到服务器令牌过期功能,请参阅“激活应用程序的可选功能”。 更多信息请参阅“GitHub 应用程序过期用户到服务器访问令牌”。

关于过期用户访问令牌

要实施定期令牌轮换并减少受威胁令牌的影响,您可以配置 GitHub 应用程序 以使用过期用户访问令牌。 有关发出用户到服务器请求的更多信息,请参阅“识别和授权 GitHub 应用程序用户”。

过期用户令牌在 8 小时后过期。 当您收到新的用户到服务器访问令牌时,响应还将包含刷新令牌,可以将其交换为新的用户令牌和刷新令牌。 刷新令牌的有效期为 6 个月。

使用刷新令牌续订用户令牌

要续订过期的用户到服务器访问令牌,您可以将 refresh_token 交换为新的访问令牌和 refresh_token

POST https://github.com/login/oauth/access_token

此回调请求将向您发送新的访问令牌和新的刷新令牌。 此回调请求类似于用来将临时 code 交换为访问令牌的 OAuth 请求。 更多信息请参阅“识别和授权 GitHub 应用程序用户”和“身份验证基础知识”。

参数

名称类型描述
refresh_token字符串必填。当 GitHub 应用程序 所有者启用过期令牌并颁发新的用户访问令牌时生成的令牌。
grant_type字符串必填。值必须为 refresh_token(OAuth 规范要求)。
client_id字符串必填。GitHub 应用程序 的客户端 ID。
client_secret字符串必填。GitHub 应用程序 的客户端密钥。

响应

{
  "access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a",
  "expires_in": "28800",
  "refresh_token": "r1.c1b4a2e77838347a7e420ce178f2e7c6912e169246c34e1ccbf66c46812d16d5b1a9dc86a149873c",
  "refresh_token_expires_in": "15811200",
  "scope": "",
  "token_type": "bearer"
}

为现有 GitHub 应用程序配置过期用户令牌

您可以在 GitHub 应用程序 设置中启用或禁用过期用户到服务器授权令牌

  1. 在任何页面的右上角,单击您的个人资料照片,然后单击 Settings(设置)

    用户� �中的 Settings 图� �

  2. 在左侧边� �中,单击 Developer settings开发者设置

  3. 在左侧边� �中,单击 GitHub Apps(GitHub 应用程序)GitHub Apps 部分

  4. 单击所选 GitHub 应用程序 旁边的 Edit(编辑)编辑 GitHub 应用程序的设置

  5. 在左侧边� �中,单击 Optional Features(可选功能)可选功能选项卡

  6. 在“User-to-server token expiration(用户到服务器令牌过期)”旁边,单击 Opt-in(选择� 入)Opt-out(选择退出)。 应用此设置可能需要� 秒钟的时间。

为新的 GitHub 应用程序选择退出过期令牌

当您创建新的 GitHub 应用程序 时,默认情况下,您的应用程序将使用过期用户到服务器访问令牌。

如果希望应用程序使用不过期用户到服务器访问令牌,您可以在应用程序设置页面上取消选择“Expire user authorization tokens(过期用户授权令牌)”。

在 GitHub 应用程序设置过程中选择� 入过期用户令牌的选项

仅当应用程序所有者为其应用程序启用了过期用户令牌时,使用用户到服务器授权令牌的现有 GitHub 应用程序 才会受到这个新流程的影响。

要为现有 GitHub 应用程序 启用过期用户令牌,需要通过 OAuth 流程发送用户以重新颁发将在 8 小时后过期的新用户令牌,并使用刷新令牌发出请求以获取新的访问令牌和刷新令牌。 更多信息请参阅“识别和授权 GitHub 应用程序用户”。