我正在使用Google身份验证构建Chrome扩展程序。我在Google控制台中创建了应用,并获取了客户端ID。这包含在manifest.json
文件中。我需要获取经过身份验证的用户的电子邮件地址。
在脚本中,我使用以下代码来获取用户详细信息。
chrome.identity.getAuthToken({
interactive: true
}, function(token) {
if (chrome.runtime.lastError) {
alert(chrome.runtime.lastError.message);
return;
}
var x = new XMLHttpRequest();
x.open('GET', 'https://www.googleapis.com/oauth2/v2/userinfo?access_token=' + token+'&alt=json&prettyPrint=true');
x.onload = function() {
console.log(x.response);
};
x.withCredentials = false;
x.send();
});
我收到的回复为:
{
"id": "108585013132758765",
"name": "Sankar",
"given_name": "Sankar",
"family_name": "Gowri",
"link": "https://plus.google.com/108585013132758765",
"picture": "xxxxxx",
"gender": "male",
"locale": "en"
}
但是我没有在该回复中收到电子邮件地址。
如果我使用以下网址获取跨源错误:
x.open('GET', 'https://www.googleapis.com/auth/userinfo.email?access_token=' + token+'&alt=json&prettyPrint=true');
如何允许cors?
答案 0 :(得分:0)
为了使用户信息端点能够将用户的电子邮件地址返回给您。对用户进行身份验证时,您必须已请求电子邮件范围。