关于过期的用户访问令牌
Note
过期的用户访问令牌目前是一项可选功能,可能会有变动。 有关详细信息,请参阅 GitHub 应用的用户到服务器访问令牌过期。
要实施定期令牌轮换并减少受威胁令牌的影响,你可以将 GitHub App配置为使用过期的用户访问令牌。 如果应用使用过期的用户访问令牌,在你生成用户访问令牌时,将收到一个刷新令牌。 用户访问令牌在 8 小时后过期,刷新令牌在 6 个月后过期。 有关详细信息,请参阅“为 GitHub 应用生成用户访问令牌”。
可以使用刷新令牌生成新的用户访问令牌和新的刷新令牌。 一旦你使用刷新令牌后,该刷新令牌和旧的用户访问令牌将不再有效。
如果刷新令牌在使用之前过期,可以通过 Web 应用程序流或设备流发送用户来重新生成用户访问令牌和刷新令牌。 有关详细信息,请参阅“为 GitHub 应用生成用户访问令牌”。
将应用配置为使用过期的用户访问令牌
在创建应用时,除非选择退出,否则将启用用户访问令牌的过期时间。有关详细信息,请参阅“注册 GitHub 应用”。 也可以在创建应用后配置此设置。
-
在 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
string
必填。 GitHub App 的客户端 ID。 客户端 ID 不同于应用 ID。 可以在应用的设置页上找到客户端 ID。 client_secret
string
除非使用设备流生成了用户访问令牌,否则是必需的。 GitHub App 的客户端密码。 grant_type
string
**** 必需。 该值必须为“refresh_token”。 refresh_token
string
必填。 你在生成用户访问令牌时收到的刷新令牌。 -
GitHub 将做出包含以下参数的响应:
响应参数 类型 说明 access_token
string
用户访问令牌。 令牌以 ghu_
开头。expires_in
integer
access_token
过期前需经历的秒数。 如果禁用了用户访问令牌的有效期限,将省略此参数。 值将始终为28800
(8 小时)。refresh_token
string
刷新令牌。 如果禁用了用户访问令牌的有效期限,将省略此参数。 令牌以 ghr_
开头。refresh_token_expires_in
integer
refresh_token
过期前需经历的秒数。 如果禁用了用户访问令牌的有效期限,将省略此参数。 值将始终为15897600
(6 个月)。scope
string
令牌具有的范围。 此值将始终为空字符串。 不同于传统的 OAuth 标记,用户访问令牌仅限于应用和用户拥有的权限。 token_type
string
令牌类型。 值将始终为 bearer
。