关于会过期的用户访问令牌
注意
目前,会过期的用户访问令牌是一个可选功能,并且可能会发生更改。 有关更多信息,请参阅“GitHub 应用的过期用户到服务器访问令牌”。
为了强制执行定期令牌轮换并减少受损令牌的影响,您可以配置您的 GitHub App 使用即将过期的用户访问令牌。如果您的应用使用即将过期的用户访问令牌,则在生成用户访问令牌时,您将收到一个刷新令牌。用户访问令牌将在八小时后过期,刷新令牌将在六个月后过期。更多信息,请参阅“为 GitHub App 生成用户访问令牌”。
您可以使用刷新令牌生成新的用户访问令牌和新的刷新令牌。一旦您使用刷新令牌,该刷新令牌和旧的用户访问令牌将不再有效。
如果您的刷新令牌在您使用之前过期,您可以通过引导用户完成 Web 应用程序流程或设备流程来重新生成用户访问令牌和刷新令牌。更多信息,请参阅“为 GitHub App 生成用户访问令牌”。
配置您的应用以使用即将过期的用户访问令牌
创建应用时,除非您选择退出,否则会启用用户访问令牌的过期。更多信息,请参阅“注册 GitHub App”。您也可以在应用创建后配置此设置。
-
在 GitHub 上任何页面的右上角,点击您的个人资料照片。
-
导航到您的帐户设置。
- 对于个人帐户拥有的应用,点击设置。
- 对于组织拥有的应用
- 点击您的组织。
- 在组织的右侧,点击设置。
-
在左侧边栏中,点击 开发者设置。
-
在左侧边栏中,点击GitHub Apps。
-
在您要修改的 GitHub App 旁边,点击编辑。
-
在 GitHub Apps 设置侧边栏中,点击可选功能。
-
在“用户到服务器令牌过期”旁边,点击启用或禁用。此设置可能需要几秒钟才能应用。
GitHub 建议您启用此功能以提高安全性。
如果您在已经生成用户访问令牌后启用了用户访问令牌过期,则先前生成的访问令牌不会过期。您可以使用DELETE /applications/CLIENT_ID/token
端点删除这些令牌。更多信息,请参阅“OAuth 授权的 REST API 端点”。
使用刷新令牌刷新用户访问令牌
-
向此 URL 发出
POST
请求,并附带以下查询参数:https://github.com/login/oauth/access_token
查询参数 类型 描述 client_id
字符串
必需。您的 GitHub App 的客户端 ID。客户端 ID 与应用 ID 不同。您可以在应用的设置页面上找到客户端 ID。 client_secret
字符串
必需,除非用户访问令牌是使用设备流程生成的。您的 GitHub App 的客户端密钥。 grant_type
字符串
必需。值必须为“refresh_token”。 refresh_token
字符串
必需。您在生成用户访问令牌时收到的刷新令牌。 -
GitHub 将返回包含以下参数的响应
响应参数 类型 描述 access_token
字符串
用户访问令牌。令牌以 ghu_
开头。expires_in
整数
access_token
过期前的秒数。如果您禁用了用户访问令牌的过期,则此参数将被省略。该值将始终为28800
(8 小时)。refresh_token
字符串
refresh_token。 refresh_token_expires_in
整数
refresh_token
过期前的秒数。如果您禁用了用户访问令牌的过期,则此参数将被省略。该值将始终为15897600
(6 个月)。scope
字符串
令牌具有的作用域。此值将始终为空字符串。与传统的 OAuth 令牌不同,用户访问令牌仅限于您的应用和用户都具有的权限。 token_type
字符串
令牌的类型。值将始终为 bearer
。