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

要实施定期令牌轮换并减少受威胁令牌的影响,您可以配置 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 settingsDeveloper settings 部分
  3. 在左侧边栏中,单击 GitHub Apps(GitHub 应用程序)GitHub Apps 部分
  4. 单击所选 GitHub 应用程序 旁边的 Edit(编辑)编辑 GitHub 应用程序的设置
  5. 在左侧栏中,单击 测试 功能Beta features tab
  6. 在“User-to-server token expiration(用户到服务器令牌过期)”旁边,单击 Opt-in(选择加入)Opt-out(选择退出)。 应用此设置可能需要几秒钟的时间。

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

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

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

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

Existing GitHub 应用程序 using user-to-server authorization tokens are only affected by this new flow when the app owner enables expiring user tokens for their app.

Enabling expiring user tokens for existing GitHub 应用程序 requires sending users through the OAuth flow to re-issue new user tokens that will expire in 8 hours and making a request with the refresh token to get a new access token and refresh token. 更多信息请参阅“识别和授权 GitHub 应用程序用户”。

此文档对您有帮助吗?

隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。