2014-04-26 51 views
0

我想創建一個Chrome擴展。需要使用github進行身份驗證。oauth.io(oauth.js)與Chrome擴展

我目前使用oauth.js的權威性,使用Chrome擴展樣板http://extensionizr.com/

當我在本地主機盡我的代碼,我可以沒有問題權威性。

這是一個我是OAuth代碼:

OAuth.initialize('my key'); 
    OAuth.popup('github', { 
     cache: true 
    }, function(error, success) { 
     console.log(error) 
     that.auth_token = success.access_token; 
    }); 

這是彈出當我嘗試AUTH: popup

這是控制檯錯誤: error

這是Oauth.io域名: enter image description here

這是rquest respose

<!DOCTYPE html> 
<html> 
    <head> 
     <script> 
      (function() { 
       "use strict"; 
      var msg="{\"status\":\"error\",\"message\":\"Origin \\\"chrome-extension://bfhbkhhimmcbjgofifofjgbjaojgbihj/\\\" does not match any registered domain/url on oauth.io\",\"state\":\"181DBPf5s84Q6s3rjMJHuiqSlPY\",\"provider\":\"github\"}"; 
      chrome.runtime.sendMessage("bfhbkhhimmcbjgofifofjgbjaojgbihj", {data:msg}); 
       window.close(); 
      })(); 
      </script> 
     </head> 
    <body></body> 
</html> 

幫幫我!

+0

你正試圖從你不應該的地方調用'chrome.sendMessage',我想。無論如何,問題在於別處。 – Xan

+0

我剛剛添加了與oauth.js一起發佈的rquest響應。使用chrome.runtime.sendMessage。 – Samed

回答

3

鉻擴展不是一個域,而是一個計劃。這就是爲什麼它不起作用。

看到這個答案在這裏: https://github.com/oauth-io/oauthd/issues/52

您需要在清單中使用

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

,然後chrome.sendMessage將被允許執行。

+0

工程就像一個魅力。非常感謝你。還有一個問題,我收到這個錯誤消息'Origin'chrome-extension:// bfhbkhhimmcbjgofifofjgb ... s不匹配oauth.io上的任何註冊域名/網址 我知道我應該將域添加到「oauth.io」。但是,擴展名是不是靜態的權利?這是不同的每臺PC上。我怎麼可以將它添加到oauth.io作爲一個域與正則表達式?我試過鉻擴展:// * /和其他一些替代品,但沒有奏效。 – Samed

+1

@MustafaSamedKasal對於已打包/已發佈的擴展名,擴展名ID是靜態的。當您加載一個解壓縮的擴展時,它是動態的(取決於其他路徑)要獲得「最終」ID,請上傳到Chrome網上應用店。分配一個永久ID,並可以使用它爲您的「發佈」版本。 – Xan