Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

刷新用户访问令牌

要实施定期令牌轮换并减少受威胁令牌的影响,你可以将 GitHub App配置为使用过期的用户访问令牌。

关于过期的用户访问令牌

注意:过期的用户访问令牌目前是一项可选功能,可能会有变动。 有关详细信息,请参阅“GitHub 应用的用户到服务器访问令牌过期”。

要实施定期令牌轮换并减少受威胁令牌的影响,你可以将 GitHub App配置为使用过期的用户访问令牌。 如果应用使用过期的用户访问令牌,在你生成用户访问令牌时,将收到一个刷新令牌。 用户访问令牌在 8 小时后过期,刷新令牌在 6 个月后过期。 有关详细信息,请参阅“为 GitHub 应用生成用户访问令牌”。

可以使用刷新令牌生成新的用户访问令牌和新的刷新令牌。 一旦你使用刷新令牌后,该刷新令牌和旧的用户访问令牌将不再有效。

如果刷新令牌在使用之前过期,可以通过 Web 应用程序流或设备流发送用户来重新生成用户访问令牌和刷新令牌。 有关详细信息,请参阅“为 GitHub 应用生成用户访问令牌”。

将应用配置为使用过期的用户访问令牌

在创建应用时,除非选择退出,否则将启用用户访问令牌的过期时间。有关详细信息,请参阅“创建 GitHub 应用程序”。 也可以在创建应用后配置此设置。

  1. 导航到您的帐户设置。

    • 对于个人帐户拥有的 GitHub App,在任何页面的右上角,单击你的个人资料照片,然后单击“设置”。
    • 对于组织拥有的 GitHub App,在任何页面的右上角,单击你的个人资料照片,然后单击你的组织。 然后,在组织右侧,单击“设置”。
  2. 在左侧边栏中,单击“ 开发人员设置”。

  3. 在左侧边栏中,单击“GitHub App”。 GitHub 中“开发人员设置”页面的屏幕截图。 一个标有“GitHub 应用”的选项,以深橙色框出。

  4. 在要修改的 GitHub App旁边,单击“编辑”。

  5. 在 GitHub Apps设置边栏中,单击“可选功能”。

  6. 在“用户到服务器令牌过期”旁边,单击“选择加入”或“选择退出”。此设置可能需要几秒钟才能应用 。

    GitHub 建议选择使用此功能以提高安全性。

如果选择使用在已生成用户访问令牌后过期的用户访问令牌,则以前生成的用户访问令牌不会过期。 可以使用 DELETE /applications/CLIENT_ID/token 终结点来删除这些令牌。 有关详细信息,请参阅“OAuth 授权”。

使用刷新令牌刷新用户访问令牌

  1. 向此 URL 发出 POST 请求,以及以下查询参数:http(s)://HOSTNAME/login/oauth/access_token

    查询参数类型说明
    client_idstring必填。 GitHub App 的客户端 ID。 客户端 ID 不同于应用 ID。 可以在应用的设置页上找到客户端 ID。

    对于用户拥有的应用,设置页为 https://github.com/settings/apps/APP-SLUG

    对于组织拥有的应用,设置页为 https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG

    APP-SLUG 替换为应用的转换名称,将 ORGANIZATION 替换为组织的转换名称。 例如,https://github.com/organizations/octo-org/settings/apps/octo-app
    client_secretstring必填。 GitHub App的客户端密码。 可以在应用的设置页上生成客户端密码。
    grant_typestring必填。 该值必须为“refresh_token”。
    refresh_tokenstring必填。 你在生成用户访问令牌时收到的刷新令牌。
  2. GitHub 将做出包含以下参数的响应:

    响应参数类型说明
    access_tokenstring用户访问令牌。 令牌以 ghu_ 开头。
    expires_inintegeraccess_token 过期前需经历的秒数。 如果禁用了用户访问令牌的有效期限,将省略此参数。 值将始终为 28800(8 小时)。
    refresh_tokenstring刷新令牌。 如果禁用了用户访问令牌的有效期限,将省略此参数。 令牌以 ghr_ 开头。
    refresh_token_expires_inintegerrefresh_token 过期前需经历的秒数。 如果禁用了用户访问令牌的有效期限,将省略此参数。 值将始终为 15811200(6 个月)。
    scopestring令牌具有的范围。 此值将始终为空字符串。 不同于传统的 OAuth 标记,用户访问令牌仅限于应用和用户拥有的权限。
    token_typestring令牌类型。 值将始终为 bearer