OAuth同意屏幕 - 删除应用程序logo的能力

95

我在OAuth授权屏幕上(URL:https://console.cloud.google.com/apis/credentials/consent)错误地添加了一个应用程序标志,现在它显示我的同意屏幕需要由谷歌进行验证。

有没有办法从同意屏幕中删除应用程序标志?

编辑: 之前我没有表述清楚,我想要删除标志以消除验证提示。


你有发现什么吗?我和你一样。 - Steven Matthews
这很可能是预期的行为;只需等待审核即可。 - Martin Zeitler
2
就我而言,最简单的解决方案是深呼吸,然后创建另一个具有相同信息但不添加标志的项目。 - Raffi
4
这太不可思议了! - Ton
15个回答

63
为了删除标志,请按照以下步骤操作:
  • 在Chrome或Chromium衍生版中打开OAuth Consent Screen Configuration。 https://console.cloud.google.com/apis/credentials/consent
  • 上传与先前上传的图像不同的任何图像。
  • 打开您的开发者工具(F12或Ctrl + Shift + I)。
  • 打开网络选项卡。
  • (可选)按下“清除”按钮,以便稍后更轻松地搜索。
  • 单击网站上的“保存”按钮以上传新标志。(如果“保存”按钮被禁用,请完成完整的“提交验证”流程。)
  • 在网络选项卡中,查找类似于“123456789987?alt=json&key= ...”的请求。
  • 单击该条目,并确保请求方法为PUT。
  • 右键单击该条目,选择“复制” -> “复制为cURL(bash)”。
  • 将其粘贴到文本编辑器中并搜索文本"iconUrl": "https://..."
  • 将文本更改为以下内容:"iconUrl": ""
  • 回到网站,在Cloud Console会话中打开(位于顶部菜单栏中的终端图标),然后将修改后的命令粘贴并运行。
  • 验证标志已从同意屏幕中删除,并且验证状态已更改。

请记住,这可能需要您再次验证您的应用程序。

自2020年6月11日起,有一个功能请求正在等待添加一个删除标志按钮,以使该过程更容易。如果您也受到此问题的影响,请留下您的评论、点赞并加上+1。


3
这种方法对我很有效。我将iconUrl设为空字符串,现在不再需要验证了。 - a paid nerd
9
针对所有遇到此问题的用户,现有一项开放式功能请求以解决此问题。如果您认为需要此功能,请通过点赞该问题并留下评论来表达您的期望。 - Chris32
14
这已经不再起作用了。Google将图标URL的实现方式更改为其Base64编码。请参考这里:https://dev59.com/s1IG5IYBdhLWcg3w415n - Evgeniy
18
截至2020年8月,这个问题仍然存在,但是此解决方案已不再适用,因为Google API请求已经改变。现在它在请求中发送经过base64编码的图像数据,替换为空值会返回错误。(与上面评论中提到的相同) - Eric Gopak
7
为什么谷歌,为什么这么痛苦! - Reactgular
显示剩余13条评论

38

截至2023年1月(由hlustosa确认),可以通过以下步骤删除图标。请注意,如果您的项目尚未属于某个组织,则除非您将其添加到组织中,否则您将停留在第8步。

由于这是两个答案的组合,并且有额外的步骤,我在此处列出所有步骤以便更清晰。@Chris32和@ropsnou初始步骤贡献者。

  1. OAuth凭据页面中删除所有现有API密钥和客户端ID
  2. 在Chrome或Chromium衍生产品中打开OAuth同意屏幕配置
  3. 上传任何与先前上传的不同的图像,然后单击“保存并继续”
  4. 在网络选项卡中查找PUT请求,例如:https://clientauthconfig.clients6.google.com/v1/brands/745625634622/icon?key={key}
  5. 右键单击该请求,选择“复制” - > “复制为cURL(bash)”
  6. 将其粘贴到文本编辑器中,并进行以下更改
    • 从URL中删除/icon
    • 将请求方法更改为DELETE
    • 删除--data-raw参数及其长值
  7. 通过单击GCP网站右上角的终端图标来激活Cloud Shell。将您在前一步中修改的命令粘贴并运行。如果出现INVALID_ARGUMENT错误,则您可能仍然有一个与同意屏幕相关联的API密钥或客户端ID(请检查GCP上的凭据选项卡)。 如果您得到{},则命令已成功执行,并且已删除标志。 但是,连同标志一起删除了更大的品牌实体,如果您尝试修改同意屏幕,则会收到“发生保存您的应用程序时出错”的消息。
  8. 在Cloud Shell中键入以下命令以重新创建品牌(假定您已激活了正确的项目):
    编辑:该命令可能失败,原因有两个(请参见评论以获取更多信息):
    • 用户不是电子邮件的所有者
    • 项目不隶属于组织
gcloud alpha iap oauth-brands create --application_title='<title>' --support_email='<email>'
  1. 现在标志已经消失,您可以再次修改同意屏幕

1
第8步出现错误:INVALID_ARGUMENT:请求包含无效参数。 - Inversion
4
第八步对我而言也失败了,出现了INVALID_ARGUMENT: Request contains an invalid argument错误。我尝试了gcloud alpha iap oauth-brands create --application_title='myappname' --support_email='me@example.com'这个命令,甚至尝试保留<title>和<email>的同样命令。 - Adam D
6
我已经完成了这个操作,但现在什么都用不了!!!我无法添加oAuth客户端密钥!!!请不要这样做。 - Víctor
1
确认这种方法仍然有效:2022年8月3日 “步骤8非常关键” - 在开始此过程之前,请确保设置了这些值。 - Teddy Katayama
1
我确认它在2023年1月对我有效。但是要小心,由于某种原因,如果您的项目不属于任何组织,您将会卡住。最后,我不得不将我的项目添加到一个新组织中才使其正常工作。@SamuliAsmala,您能否在回答开头警告人们,如果他们无法将自己的项目添加到组织中,他们将在第8步卡住? - hlustosa
显示剩余24条评论

4
对于那些无法使用“PUT”方法更新内容(如@Chris32所回答的),并准备删除同意屏幕并创建新屏幕的人,可以将“PUT”替换为“DELETE”,删除--data-binary部分(因为删除不需要任何负载),然后可以在常规bash shell中运行它。

1
马上就能工作了。谢谢! - Charles Engelke
@AlexBenfica 你只是把 PUT 改成了 DELETE 并删掉了 --data-binary 部分吗?在我的情况下这样做请求返回了 "error": {"code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT" } - Alexandr
1
如果我没记错的话...那就是我所做的一切。但我可能已经删除了任何对于DELETE调用没有意义的其他参数。 - Alex Benfica
1
同时也获得 { "error": { "code": 400, "message": "请求包含无效参数。", "status": "INVALID_ARGUMENT" } } - jasan
1
这对我不再起作用了,我收到了404错误。 - A H
显示剩余2条评论

2

我曾尝试使用requests方法,但它没有起作用,反而让我的项目被锁定了,无法再进行编辑。 如果您刚开始使用Play Services并且还没有投入生产,最简单的方法是放弃该项目并创建一个新项目。


2
我已经尝试了上述所有解决方案,发现我们不再能够发送“DELETE”请求,因为cURL会发送404响应。
我的解决方案是提交我的应用进行验证(除非您请求敏感/受限范围,否则您无需支付费用,即使这样,他们也会向您发送一封确认定价等的电子邮件)。
这样就可以像以前一样使用同意屏幕,没有图标,但没有验证。(当您通过验证后,他们会让您使用您的图标)。
一旦代表回复,让他们知道您打算将应用程序用于内部,并希望他们删除该图像。

总是出现404错误,即使使用“DELETE”方法也是如此,“PUT”也不起作用 :-( 没有要求敏感/受限范围。OAuth同意屏幕仍然“需要验证”,可能是因为应用程序图标。 3天前尝试提交验证两次,但仍未收到来自Google的验证或消息。 创建一个新应用程序意味着失去所有公共评论/使用统计信息 :-( 非常令人沮丧。 - Maxime Pacary

2

上述方法对我无效,我一直收到INVALID_ARGUMENT错误。这是因为我的项目中有客户端凭据。我必须删除客户端凭据,然后使用DELETE请求方法(不带数据二进制)才能正常工作。


1

注意事项:

在其他帖子的建议后,您可能无法再次使用“Auth0同意屏幕”。

{"error":{"code":5,"message":"The resource has been deleted.","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo","reason":"RESOURCE_DELETED","domain":"clientauthconfig.googleapis.com","metadata":{"resource_name":"[\"brand\"]"}}]}}]

在此输入图片描述

如果出现这种情况,请使用@SamuliAsmala推荐的以下命令。

gcloud alpha iap oauth-brands create --application_title="TITLE" --support_email="EMAIL"

1

2021年5月 - 完全删除同意屏幕仍然是可能的!与原始说明相比,需要进行以下更改:

  • 从请求URI中删除 /icon。更新后的URI应遵循以下格式 https://clientauthconfig.clients6.google.com/v1/brands/{BRAND_ID}?key={KEY}
  • 将请求方法从PUT更改为DELETE
  • 完全删除请求的 --data-binary 或 --data-raw 部分

这将删除整个同意屏幕(而不仅仅是图标),以便可以从头开始创建一个新的。


1
这种方法对我有效,但只有在删除与该项目相关的所有API密钥和客户端ID后才有效。 - user2483352
1
这对我来说没有正常工作。我删除了与项目相关联的OAuth凭据(该项目没有其他密钥/ID),并按照指定的shell命令输入。这清除了OAuth同意屏幕中的所有内容(包括应用程序名称和标志),但未完全删除同意屏幕。当我编辑同意屏幕,填写所有必填字段并尝试保存并继续时,我看到“发生保存您的应用程序的错误。”我想我会删除该项目并重新开始。 - Monyker
2
对我没有用,我和@Monyker有相同的经历。“保存您的应用程序时出现错误。”响应负载有一个失败原因:RESOURCE_DELETED,问题资源的名称是brand - Samuli Asmala
2
我也遇到了同样的问题,弄乱了同意屏幕。我不得不添加命令 gcloud alpha iap oauth-brands create --application_title='<title>' --support_email='<email>' - Simo

1

[更新] - 2020

仍然可以通过API调用删除先前上传的标志,尽管需要对Abhishek Srivastava建议的答案进行一些修改。

你需要:

  1. 像原来的答案一样“复制为cURL(bash)”
  2. PUT方法替换为DELETE
  3. 不要删除--data-binary部分,而是清除所有内容,直到它看起来像这样:--data-binary '{"brandId":"<your_brand_id>"}'

这将完全删除您的同意屏幕,


3
也会获得{ "error": { "code": 400, "message": "请求包含无效参数。", "status": "INVALID_ARGUMENT" } } - jasan
你可能也在负载中发送了状态,请仔细检查你的完整 API 调用。 - Mattia Pellin
@jasan 我也遇到了同样的问题。在继续使用curl命令之前,我解决了这个问题,删除了“凭据”部分下的“OAuth 2.0客户端ID”。 - Fasoeu
2
DELETE调用导致404未找到错误。 - A H

1

截至2023年3月17日,根据Buganizer,这个功能应该终于可以正常工作了。

我很高兴地分享,您现在可以从Google Cloud Console的OAuth同意屏幕配置中删除您的应用程序标志。我们知道这对我们的开发者社区非常令人沮丧,并为花费这么长时间才给您提供这种基本功能而道歉。

关于该功能的一些详细信息:

  • 如果您的OAuth同意屏幕尚未经过验证,则立即删除标志
  • 如果您已完成验证,则无法立即删除现有标志,但可以更换并提交重新验证(这似乎违反直觉,但这是我们保护您的开发者帐户免受滥用的努力的一部分)
  • 如果您被困在验证中并想要退出,则可以将发布状态更改回“测试”(但请注意,只有在您的应用程序没有与用户一起使用时才应执行此操作,否则可能会影响他们的登录能力)
这是我们正在积极开发的众多功能之一,旨在改善OAuth体验,让您花更少的时间进行配置,专注于构建令我们共同用户感到愉悦的应用程序。感谢您的耐心等待,并成为Google开发者社区的一员。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接