{"meta":{"title":"令牌过期和吊销","intro":"令牌可以过期，也可以由你、你授权的应用程序和 GitHub 本身吊销。","product":"身份验证","breadcrumbs":[{"href":"/zh/authentication","title":"身份验证"},{"href":"/zh/authentication/keeping-your-account-and-data-secure","title":"帐户安全性"},{"href":"/zh/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation","title":"令牌过期"}],"documentType":"article"},"body":"# 令牌过期和吊销\n\n令牌可以过期，也可以由你、你授权的应用程序和 GitHub 本身吊销。\n\n当令牌过期或被撤销时，它将不再用于对 Git 和 API 请求进行身份验证。 无法还原过期或已吊销的令牌，您或应用程序将需要创建新令牌。\n\n本文介绍您的 GitHub 令牌可能被吊销或过期的原因。\n\n> \\[!NOTE]\n> 当 personal access token、OAuth app 令牌或 GitHub App 令牌过期或被吊销时，您可能会在安全日志中看到 `oauth_authorization.destroy` 操作。 有关详细信息，请参阅“[审查您的安全日志](/zh/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log)”。\n\n## 令牌到期后被撤销\n\n创建令牌 personal access token时，建议为令牌设置过期时间。 到达令牌的到期日期后，令牌将自动吊销。 有关详细信息，请参阅“[管理个人访问令牌](/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)”。\n\n## 令牌在推送到公共存储库或公共 Gist 时被吊销\n\n如果有效的 OAuth 令牌、GitHub App 令牌或 personal access token 被推送到公共存储库或公共 Gist，该令牌将被自动撤销。\n\n## 令牌因未使用而过期\n\nGitHub 将自动撤销 OAuth 令牌，或者 personal access token 当令牌在一年内未使用时。\n\n## 用户吊销令牌\n\n您可以在账户设置中撤销对GitHub App或OAuth app的授权，这将撤销与该应用关联的所有令牌。 有关详细信息，请参阅 [查看和撤销GitHub应用的授权](/zh/apps/using-github-apps/reviewing-and-revoking-authorization-of-github-apps) 和 [审查授权的 OAuth 应用](/zh/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps)。\n\n撤销授权后，与授权关联的任何令牌也将被吊销。 若要重新授权应用程序，请按照第三方应用程序或网站的说明再次连接帐户 GitHub 。\n\n还可以从帐户设置中一次性撤销所有凭据。 如果你认为你的帐户可能遭到入侵，或者你的硬件丢失或被盗，这非常有用。 有关详细信息，请参阅“[撤销您的凭据](/zh/authentication/keeping-your-account-and-data-secure/revoking-your-credentials)”。\n\n## 由第三方吊销的令牌\n\n若要防止使用公开的令牌进行未经授权的访问， GitHub 建议吊销令牌，以确保不再使用令牌进行身份验证 GitHub。 凭据吊销 API 支持撤销以下令牌类型：\n\n* Personal access tokens (classic) 带有 `ghp_` 前缀\n* Fine-grained personal access tokens 带有 `github_pat_` 前缀\n* OAuth app 具有 `gho_` 前缀的标记\n* ```\n            带有 GitHub App 前缀的 `ghu_` 用户到服务器令牌\n  ```\n* GitHub App 会用 `ghr_` 前缀刷新令牌\n\n如果您发现此类令牌在 GitHub 或其他地方泄露，可以通过 REST API 提交撤销请求。 有关支持的令牌类型的完整和权威列表，请参阅 [撤销](/zh/rest/credentials/revoke#revoke-a-list-of-credentials) 。\n\n将有效令牌提交到 GitHub“凭据吊销 API”时，将自动撤销该令牌。 此 API 允许第三方吊销并非其所拥有的令牌，从而帮助保护与该令牌关联的数据免遭未经授权的访问，降低公开令牌所带来的影响。\n\n为鼓励报告并确保公开的令牌能够快速、便捷地被吊销，我们不要求通过该 API 提交的吊销请求进行身份验证。 因此， GitHub 无法提供有关报告令牌源的详细信息。\n\n## 由 OAuth app 撤销的令牌\n\n帐户 OAuth app 的所有者可以撤销其应用的授权，这也会撤销与授权关联的任何令牌。 有关撤销您对 OAuth app 的授权的详细信息，请参阅 [用于 OAuth 授权的 REST API 终结点](/zh/rest/apps/oauth-applications#delete-an-app-authorization)。\n\nOAuth app 所有者还可以撤销与授权关联的单个令牌。 有关撤销 OAuth app 中单个令牌的更多信息，请参阅 [用于 OAuth 授权的 REST API 终结点](/zh/rest/apps/oauth-applications#delete-an-app-token)。\n\n## 因同一 OAuth app 拥有过多相同作用域的令牌而被撤销的令牌\n\n每个用户/应用程序/作用域组合签发的令牌数量有限，速率限制是每小时创建十个令牌。 如果应用程序为同一用户和同一作用域创建 10 个以上的令牌， GitHub 则撤消具有相同用户/应用程序/范围组合的现有令牌之一，顺序如下：\n\n1. 从未使用过的最早令牌，该令牌是在一分钟前创建的。 在最后一分钟创建的令牌通常受到保护，以便应用程序有时间使用它刚刚创建的令牌。\n2. 如果没有此类令牌，但至少使用了一个令牌，则使用最近最少的令牌。\n3. 如果从未使用过令牌，则为最早的令牌，即使它在最后一分钟内创建。\n\n达到每小时速率限制不会撤销最早的令牌。 相反，它会在浏览器中触发重新授权提示，要求用户仔细检查他们向你的应用授予的权限。 此提示旨在中断应用陷入的任何潜在的无限循环，因为应用几乎没有理由在一小时内向用户请求十个令牌。\n\n## 由于配置， GitHub App 用户令牌已过期\n\n默认情况下，由 a GitHub App 创建的用户访问令牌将在 8 小时后过期，然后使用包含的刷新令牌重新生成。\nGitHub Apps所有者可以选择将这些令牌配置为永不过期，但由于安全影响，不建议这样做。 有关配置 GitHub App用户访问令牌的详细信息，请参阅 [激活GitHub应用的可选功能](/zh/apps/maintaining-github-apps/activating-optional-features-for-github-apps)。\n\n## 令牌已被企业所有者吊销\n\nGitHub Enterprise Cloud 上的企业所有者可以针对单个用户或特定凭据类型撤销 SSO 授权或删除凭据，也可以在应对安全事件时批量执行这些操作。 撤销 SSO 授权会移除对受 SSO 保护的组织资源的访问权限，而删除凭据（仅适用于 Enterprise Managed Users）则会将凭据完全删除。 组织所有者可以在组织级别执行相同的操作。 这些操作记录在审核日志中，你将收到电子邮件通知。\n\n有关详细信息，请参阅“[撤销企业中的 SSO 授权或删除凭据](/zh/enterprise-cloud@latest/admin/managing-iam/respond-to-incidents/revoke-authorizations-or-tokens)”。"}