Skip to main content

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

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

注意: 过期用户令牌目前为可选功能,可能会有变动。 若要选择加入或退出用户到服务器令牌过期功能,请参阅“激活应用的可选功能”。 有关详细信息,请参阅“GitHub 应用的用户到服务器访问令牌过期”。

关于过期用户访问令牌

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

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

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

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

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

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

参数

名称类型说明
refresh_tokenstring必填。 当 GitHub App 所有者启用即将过期的令牌并颁发新的用户访问令牌时,将生成此令牌。
grant_typestring必填。 值必须为 refresh_token(OAuth 规范要求)。
client_idstring必填。 GitHub App 的客户端 ID。
client_secretstring必填。 GitHub App 的客户端密码。

响应

{
  "access_token": "ghu_16C7e42F292c6912E7710c838347Ae178B4a",
  "expires_in": "28800",
  "refresh_token": "ghr_1B4a2e77838347a7E420ce178F2E7c6912E169246c34E1ccbF66C46812d16D5B1A9Dc86A1498",
  "refresh_token_expires_in": "15811200",
  "scope": "",
  "token_type": "bearer"
}

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

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

  1. 在任何页面的右上角,单击个人资料照片,然后单击“设置”。

    用户栏中的 Settings 图标

  2. In the left sidebar, click Developer settings.

  3. 在左侧边栏中,单击“GitHub 应用”。 GitHub 应用部分

  4. 单击所选 GitHub App 旁边的“编辑”。 编辑 GitHub 应用的设置

  5. 在左侧边栏中,单击“可选功能”。 “可选功能”选项卡

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

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

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

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

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

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

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

延伸阅读