当令牌过期或被撤销时,它将不再用于对 Git 和 API 请求进行身份验证。 无法还原过期或已吊销的令牌,您或应用程序将需要创建新令牌。
本文介绍您的 GitHub 令牌可能被吊销或过期的原因。
注意
当 personal access token、OAuth app 令牌或 GitHub App 令牌过期或被吊销时,您可能会在安全日志中看到 oauth_authorization.destroy 操作。 有关详细信息,请参阅“审查您的安全日志”。
令牌到期后被撤销
创建令牌 personal access token时,建议为令牌设置过期时间。 到达令牌的到期日期后,令牌将自动吊销。 有关详细信息,请参阅“管理个人访问令牌”。
令牌在推送到公共存储库或公共 Gist 时被吊销
如果有效的 OAuth 令牌、GitHub App 令牌或 personal access token 被推送到公共存储库或公共 Gist,该令牌将被自动撤销。
令牌因未使用而过期
GitHub 将自动撤销 OAuth 令牌,或者 personal access token 当令牌在一年内未使用时。
用户吊销令牌
您可以在账户设置中撤销对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 所有者还可以撤销与授权关联的单个令牌。 有关撤销 OAuth app 中单个令牌的更多信息,请参阅 用于 OAuth 授权的 REST API 终结点。
因同一 OAuth app 拥有过多相同作用域的令牌而被撤销的令牌
每个用户/应用程序/作用域组合签发的令牌数量有限,速率限制是每小时创建十个令牌。 如果应用程序为同一用户和相同作用域创建超过十个令牌,则将撤销具有相同用户/应用程序/作用域组合的最旧令牌。 但是,达到每小时速率限制不会撤销最早的令牌。 相反,它会在浏览器中触发重新授权提示,要求用户仔细检查他们向你的应用授予的权限。 此提示旨在中断应用陷入的任何潜在的无限循环,因为应用几乎没有理由在一小时内向用户请求十个令牌。
由于配置, GitHub App 用户令牌已过期
默认情况下,由 a GitHub App 创建的用户访问令牌将在 8 小时后过期,然后使用包含的刷新令牌重新生成。 GitHub Apps所有者可以选择将这些令牌配置为永不过期,但由于安全影响,不建议这样做。 有关配置 GitHub App用户访问令牌的详细信息,请参阅 激活GitHub应用的可选功能。
令牌已被企业所有者吊销
GitHub Enterprise Cloud上的企业所有者可以在应对安全事件时,撤销单个用户的 SSO 授权,或批量撤销授权;也可以删除单个用户的凭据或批量删除凭据。 撤销 SSO 授权会移除对受 SSO 保护的组织资源的访问权限,而删除凭据(仅适用于 Enterprise Managed Users)则会将凭据彻底删除。
有关详细信息,请参阅“撤销企业中的 SSO 授权或删除凭据”。