Google chrome extension 带有Chrome扩展的oauth.io(oauth.js)

Google chrome extension 带有Chrome扩展的oauth.io(oauth.js),google-chrome-extension,oauth,github-api,Google Chrome Extension,Oauth,Github Api,我正在尝试创建一个chrome扩展。需要使用github进行身份验证 我目前正在使用oauth.js进行auth,使用chrome扩展样板文件 当我在本地主机上尝试我的代码时,我可以毫无问题地进行身份验证 这是oauth的my代码: OAuth.initialize('my key'); OAuth.popup('github', { cache: true }, function(error, success) { console.log(err

我正在尝试创建一个chrome扩展。需要使用github进行身份验证

我目前正在使用oauth.js进行auth,使用chrome扩展样板文件

当我在本地主机上尝试我的代码时,我可以毫无问题地进行身份验证

这是oauth的my代码:

OAuth.initialize('my key');
    OAuth.popup('github', {
        cache: true
    }, function(error, success) {
        console.log(error)
        that.auth_token = success.access_token;
    });
这是我尝试验证时弹出的窗口:

这是控制台错误:

这是Oauth.io域:

这是rquest respose


(功能(){
“严格使用”;
var msg=“{\”status\”:\“error\”,\“message\”:\“Origin\\”chrome-extension://bfhbkhhimmcbjgofifofjgbjaojgbihj/\\\“与oauth.io\”上的任何注册域/url不匹配,\“state\”:\“181DBPf5s84Q6s3rjMJHuiqSlPY\”,\“provider\”:“github\”;
sendMessage(“bfhbkhimmcbjgofifofjgbjaojgbihj”,{data:msg});
window.close();
})();

救救我

chrome扩展不是一个域,而是一个方案。这就是它不起作用的原因

请看下面的答案:

你需要使用

"externally_connectable": {
    "matches": ["https://oauth.io/*"]
},

在清单中,然后将允许执行
chrome.sendMessage

我认为您试图从不应该从的地方调用
chrome.sendMessage
。无论如何,问题出在别处。我刚刚添加了rquest响应,它是用oauth.js发布的。使用chrome.runtime.sendMessage.的效果非常好。非常感谢你。还有一个问题,我正在接收这个错误消息
Origin“chrome-extension://bfhbkhhimmcbjgofifofjgb…s与oauth.io上的任何注册域/url不匹配
我知道我应该将域添加到“oauth.io”“。但是扩展id不是静态的,对吗?它在每台电脑上都是不同的。如何将它添加到oauth.io中,作为带有regex的域?我尝试了chrome扩展名://*/和其他一些选项,但没有成功。@MustafaSamedKasal扩展名id对于打包/发布的扩展名是静态的。加载未打包的扩展时,它是动态的(取决于路径等)。要获得“最终”id,请上传到Chrome网络商店。您将被分配一个永久id,并可以将其用于“发布”版本。
"externally_connectable": {
    "matches": ["https://oauth.io/*"]
},