Google Cloud OAuth2作用域未更新



我有一个SPA,应该通过gapi与物联网核心云发布/订阅进行交互。

首先,我只使用IoT Core。我在api下的应用配置中添加了必要的作用域;服务/凭据和我的gapi客户端初始化调用记录在这里。

它工作正常,OAuth同意屏幕显示新的范围,IoT Core API调用正在工作。

现在我想添加云Pub/Sub。再次将范围添加到应用程序配置和gapi初始化调用中。以下是对gapi.client.init的论证:

{
apiKey: config.firebase.apiKey,
clientId: config.clientId,
discoveryDocs: [
'https://cloudiot.googleapis.com/$discovery/rest?version=v1',
'https://pubsub.googleapis.com/$discovery/rest?version=v1',
],
scope:
'https://www.googleapis.com/auth/pubsub https://www.googleapis.com/auth/cloudiot',
}

然而,当我调用Pub/Sub API时,我得到这个响应:

{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"status": "PERMISSION_DENIED"
}
}

这是我尝试的:

  • 退出,然后返回
  • 清除浏览器缓存和cookie
  • 撤销Google帐户中应用程序的所有权限

仍然没有运气。有趣的是,尽管现在这两个范围都被添加到云端的应用程序中,但在撤销应用程序权限并重新登录后,同意屏幕只请求物联网核心范围的权限。Pub/Sub作用域在这里没有显示。

你知道我错过了什么吗?

找到问题。登录是由没有添加Pub/Sub范围的代码的另一部分发起的。