Google 中的 "The OAuth client was deleted" 是否意味着密钥无效?

Does "The OAuth client was deleted" from Google mean the keys are invalid?

我正在尝试追踪 GOOGLE_CLIENT_SECRETGOOGLE_CLIENT_ID 的泄漏值。我 运行 这个基本的烧瓶应用程序 here 在 docker,link 它到本地主机,编辑 /etc/hosts 将其映射到“myserver.local.com”并访问这一页。当我在“此应用程序将尝试通过 Google OAuth 2.0 对您进行身份验证”屏幕上单击“登录”时,出现此错误

Authorization Error
Error 401: deleted_client
The OAuth client was deleted

排除删除后30天内恢复项目的可能性,我是否可以认为泄露的密钥不构成威胁?我在我们的项目中找不到它们,所以我不能自己删除它们。

为确保您的访问令牌被撤销,您可以执行以下任何操作:

Tokens: delete --> 删除用户为应用程序颁发的所有访问令牌。

gcloud auth revoke --> 撤销服务器上的用户帐户令牌:

Programatically revoke access

Change password

您还可以使用 OAuth Token audit log 跟踪您的令牌,以查看使用它的时间和人员。

客户端 ID 包含 project number。客户端 ID 的构造方式如下:

<PROJECT_NUMBER>-<RANDOM_STUFF>.apps.googleusercontent.com

如果您有权访问该项目,则可以通过转至 link https://console.cloud.google.com/apis/credentials?project=<PROJECT_NUMBER>.

访问凭据列表

里面可以验证client ID有没有被删除,没有的话自己删除

您还可以通过在此命令中使用相同的项目编号来检查项目是否正在等待删除(需要 gcloud 安装并正确验证):

curl -H"Authorization: Bearer $(gcloud auth print-access-token)" -H'Accept: application/json' \
'https://cloudresourcemanager.googleapis.com/v1/projects?filter=projectNumber%3A<PROJECT_NUMBER>'

根据 API 定义,如果响应中包含 "lifecycleState":"DELETE_REQUESTED" 字段,则表示该项目正在等待删除但仍可恢复。

所有这些步骤都取决于您能否使用凭据访问项目。如果您没有访问权限,您应该找一个有访问权限的人。如果该项目在组织内,则拥有组织级别权限的人应该有权访问其中的所有项目。

综上所述,错误看起来确实意味着客户端已被删除,并且无法恢复已删除的凭据,至少根据删除一个时的警告消息:

我看到的最大危险是泄露的凭据包含项目编号,但仅滥用项目编号非常困难。