【发布时间】:2020-07-30 02:03:28
【问题描述】:
我有一个需要对用户进行身份验证的 Chrome 扩展程序。通过身份验证后,我会将该用户的电子邮件发送到在 Docker 中运行的服务器,然后将其登录。我无法获取令牌。代码如下:
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();
}
问题是我没有取回访问令牌。后端(此时)也在我的笔记本电脑(本地主机)上,但在一个 docker 容器中。我的本地主机没有 SSL 证书,我想知道这是否是问题所在?我从来没有得到一个令牌,所以我从来没有用 XMLHttpRequest 发送它,因此我从来没有得到 ReadyState=200。知道有什么问题吗?
【问题讨论】:
标签: google-chrome-extension google-oauth