Skip to main content

令牌过期和吊销

你的令牌可能会过期,也可以由你、你授权的应用程序以及 GitHub 自行吊销。

当令牌过期或被撤销时,它将不再用于对 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 所有者还可以撤销与授权关联的单个令牌。