跳至主要内容

令牌的过期与撤销

您的令牌可能会过期,也可能被您、您授权的应用程序或 GitHub 本身撤销。

当令牌已过期或被撤销后,便无法再用于对 Git 和 API 请求进行身份验证。过期或被撤销的令牌无法恢复,您或应用程序需要创建一个新令牌。

本文说明了导致您的 GitHub 令牌被撤销或过期的可能原因。

注意

当个人访问令牌、OAuth 应用令牌或 GitHub 应用令牌过期或被撤销时,您可能会在安全日志中看到 oauth_authorization.destroy 操作。有关详细信息,请参阅 查看安全日志

令牌在达到过期日期后被撤销

创建个人访问令牌时,我们建议您为令牌设置过期时间。令牌达到过期日期后,会自动被撤销。有关详细信息,请参阅 管理个人访问令牌

将令牌推送到公共仓库或公共 gist 时被撤销

如果将有效的 OAuth 令牌、GitHub 应用令牌或个人访问令牌推送到公共仓库或公共 gist,令牌将被自动撤销。

因未使用而过期的令牌

当 OAuth 令牌或个人访问令牌一年未使用时,GitHub 会自动撤销该令牌。

用户撤销的令牌

您可以在账户设置中撤销对 GitHub 应用或 OAuth 应用的授权,这将撤销与该应用关联的所有令牌。有关详细信息,请参阅 查看并撤销对 GitHub 应用的授权查看您授权的 OAuth 应用

授权被撤销后,与该授权关联的所有令牌也会被撤销。要重新授权应用,请按照第三方应用或网站提供的说明,在 GitHub 上再次连接您的账户。

第三方撤销的令牌

为防止使用泄露的令牌进行未授权访问,GitHub 建议撤销令牌,以确保令牌不再能够用于对 GitHub 进行身份验证。凭证撤销 API 支持撤销以下类型的令牌:

  • 带有 ghp_ 前缀的个人访问令牌(经典)
  • 带有 github_pat_ 前缀的细粒度个人访问令牌
  • 带有 gho_ 前缀的 OAuth 应用令牌
  • 带有 ghu_ 前缀的 GitHub 应用用户到服务器令牌
  • 带有 ghr_ 前缀的 GitHub 应用刷新令牌

如果您在 GitHub 或其他地方发现这些令牌被泄露,可通过 REST API 提交撤销请求。请参阅 撤销,获取受支持令牌类型的完整权威列表。

当向 GitHub 的凭证撤销 API 提交有效令牌时,该令牌会被自动撤销。此 API 允许第三方撤销他们并不拥有的令牌,并帮助保护该令牌关联的数据免受未授权访问,限制泄露令牌的影响。

为鼓励报告并确保泄露的令牌能够快速、轻松地被撤销,我们不要求对通过 API 提交的撤销请求进行身份验证。因此,GitHub 无法提供关于报告令牌来源的进一步信息。

OAuth 应用撤销的令牌

OAuth 应用的所有者可以撤销账户对其应用的授权,这也会撤销与该授权关联的所有令牌。有关撤销 OAuth 应用授权的更多信息,请参阅 OAuth 授权的 REST API 端点

OAuth 应用所有者也可以撤销与授权关联的单个令牌。有关撤销 OAuth 应用单个令牌的更多信息,请参阅 OAuth 授权的 REST API 端点

因同一范围的 OAuth 应用令牌过多而被撤销的令牌

每个用户/应用/范围组合最多只能发放十个令牌,并且每小时最多可创建十个令牌。如果同一用户、同一应用以及相同范围的令牌数量超过十个,最早创建的令牌将被撤销。但达到每小时创建上限并不会撤销最旧的令牌,而是会在浏览器中弹出重新授权提示,要求用户再次确认授予应用的权限。此提示旨在打断可能出现的无限循环请求,因为在一小时内请求十个令牌的情况几乎不存在。

用户令牌因 GitHub 应用配置而过期

GitHub 应用创建的用户访问令牌默认在八小时后过期,随后必须使用随附的刷新令牌重新生成。GitHub 应用所有者可以选择将这些令牌配置为永不过期,但出于安全考虑不推荐这样做。有关配置 GitHub 应用用户访问令牌的更多信息,请参阅 为 GitHub 应用激活可选功能

© . This site is unofficial and not affiliated with GitHub, Inc.