当令牌过期或被撤销时,它将不再用于对 Git 和 API 请求进行身份验证。 无法还原过期或已吊销的令牌,您或应用程序将需要创建新令牌。
本文介绍了 GitHub 令牌可能被吊销或过期的可能原因。
注意
当 personal access token、OAuth app 令牌或 GitHub App 令牌过期或被吊销时,你可能会在安全日志中看到 oauth_authorization.destroy 操作。 有关详细信息,请参阅“审查您的安全日志”。
令牌到期后被撤销
创建 personal access token 时,建议为令牌设置过期时间。 到达令牌的到期日期后,令牌将自动吊销。 有关详细信息,请参阅“管理个人访问令牌”。
令牌在推送到公共存储库或公共 Gist 时被吊销
如果将有效的 OAuth 令牌、GitHub App 令牌或 personal access token 推送到公共存储库或公共 gist,则该令牌将自动吊销。
令牌因未使用而过期 当 OAuth 令牌或 personal access token 一年内未使用时,GitHub 会自动将其吊销。
用户吊销令牌
您可以从帐户设置中撤销对 GitHub App 或 OAuth app 的授权,这将吊销与应用程序关联的任何令牌。
有关详细信息,请参阅 查看和撤销GitHub应用的授权 和 审查授权的 OAuth 应用。 撤销授权后,与授权关联的任何令牌也将被吊销。
- 要重新授权应用程序,请按照第三方应用程序或网站上的说明再次连接 GitHub 上的帐户。
- 由第三方吊销的令牌
- 为防止使用公开的令牌进行未经授权的访问,GitHub 建议吊销令牌,以确保该令牌不再可用于对 GitHub 进行身份验证。
- 凭据吊销 API 支持撤销以下令牌类型:
Personal access tokens (classic) 带有 ghp_ 前缀 Fine-grained personal access tokens 带有 github_pat_ 前缀
OAuth app 令牌带有 gho_ 前缀 GitHub App 用户到服务器令牌带有 ghu_ 前缀
GitHub App 刷新令牌带有 ghr_ 前缀 如果在 GitHub 或其他位置发现了其中任何泄露的令牌,则可以通过 REST API 提交吊销请求。
有关支持的令牌类型的完整和权威列表,请参阅 撤销 。
将有效的令牌提交到 GitHub的凭据吊销 API 时,令牌将自动吊销。 此 API 允许第三方吊销并非其所拥有的令牌,从而帮助保护与该令牌关联的数据免遭未经授权的访问,降低公开令牌所带来的影响。
为鼓励报告并确保公开的令牌能够快速、便捷地被吊销,我们不要求通过该 API 提交的吊销请求进行身份验证。 因此,GitHub 无法提供关于报告的令牌来源的更多信息。
每个用户/应用程序/作用域组合签发的令牌数量有限,速率限制是每小时创建十个令牌。 如果应用程序为同一用户和相同作用域创建超过十个令牌,则将撤销具有相同用户/应用程序/作用域组合的最旧令牌。 但是,达到每小时速率限制不会撤销最早的令牌。 相反,它会在浏览器中触发重新授权提示,要求用户仔细检查他们向你的应用授予的权限。 此提示旨在中断应用陷入的任何潜在的无限循环,因为应用几乎没有理由在一小时内向用户请求十个令牌。
令牌已被 OAuth app 吊销
OAuth app 的所有者可以撤销帐户对其应用程序的授权,这也会吊销与授权关联的任何令牌。 若要详细了解如何撤销 OAuth app 的授权,请参阅“用于 OAuth 授权的 REST API 终结点”。 OAuth app 所有者还可以撤销与授权关联的单个令牌。