为什么在传递多个范围时 gcloud 会崩溃?

Why does gcloud crash when multiple scopes are passed?

我正在通过此 gcloud 命令向访问令牌添加范围:gcloud auth application-default login --scopes='https://www.googleapis.com/auth/drive'。当我只添加 1 个范围时它工作正常,但每当我尝试添加另一个 gcloud auth application-default login --scopes='https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/cloud-platform' 时,我都会被带到同意屏幕,在那里我可以看到提供的范围。接受后,我在终端机中看到了这个:

ERROR: gcloud crashed (Warning): Scope has changed from "https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/accounts.reauth" to "https://www.googleapis.com/auth/accounts.reauth https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/drive"

知道为什么会这样吗?我没有正确传递范围吗?

注意。显示的范围已添加到 GCP 的控制台中。

尝试删除范围列表中任何位置的空格,并使用逗号分隔每个范围(除了将整个列表括在引号中),如下所示:

gcloud auth application-default login --scopes='https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/cloud-platform'

我一开始使用您的命令时收到了同样的错误,但在查看此 issue report 后,这是由于 gcloud 在存在空格时错误地解析参数造成的。使用上面的命令在我的测试中解决了它。