Google chrome extension 为什么在Chrome扩展中获取oAUTH2令牌失败?
我有一个Chrome扩展,需要对用户进行身份验证。一旦通过身份验证,我会将该用户的电子邮件发送到运行在Docker中的服务器,然后登录。我拿不到代币。代码如下:Google chrome extension 为什么在Chrome扩展中获取oAUTH2令牌失败?,google-chrome-extension,google-oauth,Google Chrome Extension,Google Oauth,我有一个Chrome扩展,需要对用户进行身份验证。一旦通过身份验证,我会将该用户的电子邮件发送到运行在Docker中的服务器,然后登录。我拿不到代币。代码如下: chrome.identity.getAuthToken({ 'interactive': true }, function(token) { if (chrome.runtime.lastError) { currentSessionAccessToken=t
chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
if (chrome.runtime.lastError) {
currentSessionAccessToken=token;
alert(chrome.runtime.lastError.message);
//alert("you need to have a gmail account"); //ubuntu
return;
}
currentSessionAccessToken=token;
var x = new XMLHttpRequest();
x.open('GET', 'https://www.googleapis.com/oauth2/v2/userinfo?alt=json&access_token=' + token);
x.onload = function() {
if (x.readyState=200)
{
var data=this.responseText;
jsonResponse = JSON.parse(data);
photo = jsonResponse.picture;
szName=jsonResponse.name;
email=jsonResponse.email;
x.abort(); //done so get rid of it
send_to_backend(request, sender, sendResponse);
};
}
x.send();
}
问题是我没有取回访问令牌。后端(此时)也在我的笔记本电脑(localhost)上,但在docker容器中。我没有本地主机的SSL证书,我想知道这是否是问题所在?我从未获得过令牌,因此我从未使用XMLHttpRequest发送它,因此我从未获得ReadyState=200。你知道怎么回事吗?你是否为谷歌OAuth API访问注册了你的应用程序,并在清单中指定了OAuth字段 从用户身份验证上的: 将密钥复制到您的清单 当您在GoogleOAuth控制台中注册应用程序时,您将提供应用程序的ID,在令牌请求期间将对其进行检查。因此,在开发过程中具有一致的应用程序ID非常重要 要保持应用程序ID不变,需要将安装的manifest.json中的密钥复制到源清单中。这不是最优雅的任务,但它是如何进行的:
"oauth2": {
"client_id": "YOUR_CLIENT_ID",
"scopes": ["scope1", ...]
}
您是否为Google OAuth API访问注册了应用程序,并在清单中指定了OAuth字段 从用户身份验证上的: 将密钥复制到您的清单 当您在GoogleOAuth控制台中注册应用程序时,您将提供应用程序的ID,在令牌请求期间将对其进行检查。因此,在开发过程中具有一致的应用程序ID非常重要 要保持应用程序ID不变,需要将安装的manifest.json中的密钥复制到源清单中。这不是最优雅的任务,但它是如何进行的:
"oauth2": {
"client_id": "YOUR_CLIENT_ID",
"scopes": ["scope1", ...]
}
事实证明,为了让“身份”发挥作用,你必须发布到谷歌网站商店。我之所以不这么做,是因为一个网站经常需要几周的时间才能被审查。我过去也有过这种经历。我还没有真正确定将要使用的新URL,并希望在我这么做之前让系统正常工作。既然我提交了审查,我想我还有一些时间,并且将“虚构”继续开发工作所需的步骤(即身份验证)。感谢迈卡指出手册。这让我意识到,如果没有谷歌的批准,就无法让“身份”生效。事实证明,为了让“身份”生效,你必须发布到谷歌网站商店。我之所以不这么做,是因为一个网站经常需要几周的时间才能被审查。我过去也有过这种经历。我还没有真正确定将要使用的新URL,并希望在我这么做之前让系统正常工作。既然我提交了审查,我想我还有一些时间,并且将“虚构”继续开发工作所需的步骤(即身份验证)。感谢迈卡指出手册。这让我意识到,如果没有谷歌的批准,“身份”是无法工作的。