我有这个电话(为了简洁起见,我删除了错误处理):
chrome.identity.getAuthToken({interactive: true}, function (token) {
let req = new XMLHttpRequest();
req.open('GET', 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=' + token);
req.onload = function() {
console.log('this userinfo => ', req.response);
};
req.send();
});
我记录了这个:
this userinfo => {
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
我相信我需要将以下内容添加到manifest.json文件中......
之前我有这个:
"oauth2": {
"client_id": "5461307462-7gebv03xxx9csfidfg5f6ggxxxrju9374.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/chromewebstore.readonly"
]
},
然后我补充一下:
"oauth2": {
"client_id": "5461307462-7gebv03xxx9csfidfg5f6ggxxxrju9374.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/oauth2/v1/userinfo",
"https://www.googleapis.com/oauth2/v1/userinfo.picture",
"https://www.googleapis.com/auth/chromewebstore.readonly"
]
},
问题是,然后验证方法会发生变化。我不再明白这个观点:
我获得了一个新的Chrome标签,如下所示:
问题,无论我登录多少次,它都会反弹回同一个登录标签。此外,我无法访问任何其他Chrome标签,它会让我反复回到同一个Chrome认证标签。这太奇怪了,经历了如此糟糕的经历。
有谁知道可能会发生什么?
答案 0 :(得分:1)
最有可能的问题是,您请求的范围包含无效地址(您从哪里获取地址?)
尝试更改:
https://www.googleapis.com/oauth2/v1/userinfo
by:https://www.googleapis.com/auth/userinfo.email
和/或https://www.googleapis.com/auth/userinfo.profile
也许范围https://www.googleapis.com/auth/userinfo
也可以。
您还可以查看有用的Google APIs Explorer。