Chrome中的XMLHttpRequest锁定了浏览器

时间:2018-02-05 04:40:32

标签: google-chrome google-chrome-extension

我有以下代码(我不建议运行它):

     let req = new XMLHttpRequest();
     req.open('GET', 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=' + token);
     req.onload = function() {
        console.log('response:', req.response);
     };
     req.send();

这会打开一个新标签,这个标签会完全破坏所有焦点。我无法使用任何其他Chrome标签,它会快速切换回验证标签。如果我使用auth选项卡登录,它只会重新加载相同的auth选项卡,然后我回到原点。

通过此调用获取令牌:

chrome.identity.getAuthToken({interactive: true}, function (token) {}):

有没有人见过这个可怕的问题?我无法让Chrome停止向屏幕截图中的网址发送身份验证请求。它一直在窃取焦点,并迫使我一遍又一遍地登录。

据我所知,这实际上是我给黑洞认证标签的电话:

chrome.identity.getAuthToken()

这不会发生,但似乎在我将其添加到manifest.json文件后开始发生:

  "oauth2": {
    "client_id": "5461xxx462-7gebv033e9csxxxxg5f6ggu22rju9374.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/oauth2/v1/userinfo", // added this line
      "https://www.googleapis.com/oauth2/v1/userinfo.picture", // and added this line
      "https://www.googleapis.com/auth/chromewebstore.readonly"
    ]
  },

enter image description here

旧的登录屏幕看起来像这样,这非常有效:

enter image description here

我目前相当确定范围数组中的这两行是导致问题的原因:

"https://www.googleapis.com/oauth2/v1/userinfo"
"https://www.googleapis.com/oauth2/v1/userinfo.picture"

我该怎么办?

1 个答案:

答案 0 :(得分:1)

我以前遇到过这个问题但是几个月前。如果我没记错的话,最终得出的结果是client_id无效。仔细检查你的oauth client_id,确保你使用的是正确的。