令牌过期或已被吊销后,便无法再用于对 Git 和 API 请求进行身份验证。无法恢复已过期或被吊销的令牌,您或应用程序需要创建一个新的令牌。
本文解释了 GitHub 令牌可能被吊销或过期的可能原因。
注意
当个人访问令牌或 OAuth 令牌过期或被吊销时,您可能会在安全日志中看到 `oauth_authorization.destroy` 操作。有关更多信息,请参阅“查看您的安全日志”。
达到过期日期后令牌被吊销
创建个人访问令牌时,建议您设置令牌的过期时间。达到令牌的过期日期后,令牌将自动被吊销。有关更多信息,请参阅“管理您的个人访问令牌”。
推送至公共存储库或公共 gist 时令牌被吊销
如果将有效的 OAuth 令牌、GitHub 应用令牌或个人访问令牌推送到公共存储库或公共 gist,则该令牌将自动被吊销。
由于缺乏使用而令牌过期
如果令牌一年未被使用,GitHub 将自动吊销 OAuth 令牌或个人访问令牌。
令牌被用户吊销
您可以从帐户设置中吊销对 GitHub 应用或 OAuth 应用的授权,这将吊销与该应用关联的任何令牌。有关更多信息,请参阅“查看和吊销 GitHub 应用的授权”和“查看您已授权的 OAuth 应用”。
吊销授权后,与该授权关联的任何令牌也将被吊销。要重新授权应用程序,请按照第三方应用程序或网站中的说明再次连接您的 GitHub 帐户。
令牌被 OAuth 应用吊销
OAuth 应用的所有者可以吊销帐户对其应用的授权,这也会吊销与该授权关联的任何令牌。有关吊销 OAuth 应用授权的更多信息,请参阅“OAuth 授权的 REST API 端点”。
OAuth 应用所有者还可以吊销与授权关联的单个令牌。有关吊销 OAuth 应用的单个令牌的更多信息,请参阅“OAuth 授权的 REST API 端点”。
由于 OAuth 应用具有相同范围的令牌过多而令牌被吊销
每个用户/应用程序/范围组合最多可发出十个令牌,每小时创建令牌的速率限制为十个。如果应用程序为同一用户和相同范围创建超过十个令牌,则具有相同用户/应用程序/范围组合的最旧令牌将被吊销。但是,达到每小时速率限制不会吊销您最旧的令牌。相反,它会在浏览器中触发重新授权提示,要求用户仔细检查他们授予应用程序的权限。此提示旨在为应用程序可能陷入的任何潜在无限循环提供喘息机会,因为应用程序几乎没有理由在一小时内向用户请求十个令牌。
由于 GitHub 应用配置而用户令牌过期
GitHub 应用创建的用户访问令牌默认情况下将在八小时后过期,然后必须使用包含的刷新令牌重新生成。GitHub 应用的所有者可以选择将这些令牌配置为永不过期,但不建议这样做,因为这会带来安全隐患。有关配置 GitHub 应用的用户访问令牌的更多信息,请参阅“激活 GitHub 应用的可选功能”。